2.2.1 ジョブを続行できないエラーが発生したときの終了コードを定義する
メモリ不足やジョブ定義スクリプトの解析エラーなど,ジョブの実行を継続できないエラーによってジョブが終了した場合,ジョブコントローラの終了コードは1となります。しかし,環境変数ADSH_JOBRC_FATALに値を設定しておくことで,この場合の終了コードを1〜255に変更できます。
環境変数ADSH_JOBRC_FATALの設定方法および適用可否の詳細については,マニュアル「JP1/Advanced Shell」の「環境変数ADSH_JOBRC_FATAL」の説明を参照してください。
(1) 環境変数ADSH_JOBRC_FATAL(ジョブ続行不可エラー発生時の終了コードを設定する)
ジョブが続行できなくなってエラー終了した場合のジョブコントローラの終了コードを設定します。設定した終了コードは,adshexecコマンドから実行されたジョブに対して適用されます。
システム全体でこの環境変数の設定値を有効にする方法を次に示します。
Windowsの場合
システム環境変数として環境変数ADSH_JOBRC_FATALを定義する。
UNIX版の場合
/etc/profileに環境変数ADSH_JOBRC_FATALの設定処理を記述する。
この環境変数を設定しなかった場合,ジョブが続行できないエラーで終了した際のジョブコントローラの終了コードは1となります。
(a) 環境変数に設定できる値
- 終了コード 〜<符号なし整数>((1〜255))
ジョブ続行不可時の終了コードを指定します。前の桁を0で埋めて「001」のように指定した場合は,上位のゼロを削除して「1」と扱います。
(b) 注意事項
環境ファイルのexportパラメーターを使用して環境変数ADSH_JOBRC_FATALを定義した場合や,シェル変数ENVに指定したファイル内およびジョブ定義スクリプト内で環境変数ADSH_JOBRC_FATALの定義・変更をした場合,そのジョブ内ではこの機能は有効になりません。ただし,そのジョブから起動した別のジョブで有効になります。
環境変数ADSH_JOBRC_FATALはジョブの最終的な終了コードを定義します。各コマンドやジョブステップの終了コードには影響しません。
次の値が設定された場合,ジョブは実行されないで終了コード255でエラー終了します。
4文字以上の値(例:1234)
指定範囲外の値(例:500)
数値以外の文字(例:1A4,+8,8.0)
0文字の値(空文字列)
エラー発生時に環境変数ADSH_JOBRC_FATALを適用するかどうかの判定は,ジョブごとに独立しています。そのため,ルートジョブや子孫ジョブの中だけでジョブの実行を継続できないエラーが発生した場合に,ほかのルートジョブや子孫ジョブに対して環境変数ADSH_JOBRC_FATALが適用されて終了コードが変更されることはありません。