手動実行で正常終了するジョブをNSMから実行すると異常終了する

Document created by Naruhiro_Yoneshige Employee on Jul 30, 2015Last modified by shunsuke_katakura on Mar 11, 2016
Version 2Show Document
  • View in full screen mode

文書番号:            JTEC002259

製品名:                NSM ジョブ管理オプション

バージョン:          2.x / 3.1

OS:                    UNIX/Linux

 

Question

OS上で手動実行すると正常終了するスクリプトをNSM経由で実行すると異常終了ステータスとなる。

 

Answer

※このドキュメントは、以下のお客様に対して有効です。
NSM 3.1 for UNIX/Linux (ENF 有効設定)のお客様
NSM 2.1 / 2.2 / 2.4.2 for UNIXをお使いのお客様

NSMジョブ管理オプションでは、ジョブの終了コードを認識する方法として、EXITLASTとEXITMAINという2つの方法があります。製品を導入した後の初期の設定は、EXITLASTです。そのため、製品導入後の動作は、変更を加えない限りEXITLASTの動作になります。

EXITLAST (初期設定)
ジョブで実行されるメインプログラムの中で、子プログラムをバックグラウンドで実行している場合、終了が遅いほうのプログラムの終了コードを拾います。次の例を参照してください。

例1)

031010059-1.gif

例1)のスクリプトがジョブとして実行された場合、バックグランドで呼び出された子スクリプト(/job/job001/script02)のほうが遅く終了するため、NSMが認識する終了コードは、35となります。

例2)

031010059-2.gif

例2)のスクリプトがジョブとして実行された場合、メインスクリプト(/job/job001/script01)のほうが遅く終わるため、NSMが認識する終了コードは、25となります。

EXITMAIN
ジョブで実行されるメインプログラムの中で、子プログラムをバックグラウンドで実行していたとしても、常にメインプログラムの終了コードを認識します。次の例を参照してください。

例3)

031010059-3.gif

例3)は例1)のスクリプトと全く同じですが、例3)のスクリプトがジョブとして実行された場合、呼び出された子プログラムが存在していたとしても、NSMが認識する終了コードは、常にメインプログラムのものになりますので、この例では、25となります。

[現在の設定確認方法及び変更方法]

以下のコマンドの出力結果から、現在の設定を確認します。

#enfcontrol  105

EXITLASTの場合、以下のような出力が含まれます。

CAIENF-I-APPL[WLM]UP, PID=25244, MsgQ=259, RC=LAST, TRIGGER=LAST, CPU=LAST

EXITMAINの場合、以下のような出力が含まれます。

CAIENF-I-APPL[WLM]UP, PID=25244, MsgQ=259, RC=MAIN, TRIGGER=MAIN, CPU=MAIN

EXITMAINオプションをシステムの設定として使用する場合の設定変更方法を以下に記載します。

  1. NSMサービスを停止します。

    # unicntrl stop all

  2. enfをスタートアップさせるファイル($CAIGLBL0000/enf/scripts/rc)の【末尾】に以下の3行を記述して下さい。

    $CAIGLBL0000/enf/bin/enfcontrol JOB RC EXITMAIN
    $CAIGLBL0000/enf/bin/enfcontrol JOB CPUTIME EXITMAIN
    $CAIGLBL0000/enf/bin/enfcontrol JOB TRIGGER EXITMAIN

    NSMを再起動すると新しい設定を有効にします。

    # unicntrl start all

(注意事項)
CAENFのパッチを適用すると、
$CAIGLBL0000/enf/scripts/rcファイルが更新される場合があります。
上記のように、お客様がrcファイルに何らかの追加設定を行っている場合パッチ適用時にそれらの追加設定は保持されません。
そのため、パッチ適用時に自動的に作成されているrcファイルのバックアップ
$CAIGLBL0000/enf/scripts/rc.pre-ENF-YYYY.ddd
を参考にして、新しいrcファイルに対して上記2.の3行を含めて手動にて追加設定を行って下さい。

Attachments

    Outcomes