7.3.49 TRAP_ACTION_SIGTERMパラメーター(ジョブコントローラが強制終了要求を受けたときの動作を定義する)
形式
- UNIX版
#-adsh_conf TRAP_ACTION_SIGTERM {DISABLE|TERM|CONT|AUTO}
- Windows版
#-adsh_conf TRAP_ACTION_SIGTERM {DISABLE|TERM}
機能
ジョブコントローラが強制終了要求を受けたときに実行する動作を,trapコマンドによって定義できるかどうかを指定します。また,trapコマンドで定義した動作を実行した後のジョブコントローラの動作を指定します。ここでの強制終了要求とは,JP1/AJS - Viewからの強制終了操作,UNIXのkillコマンドによるSIGTERMシグナル送信,Windowsのtaskkillコマンドによる強制終了(TerminateProcessなどによるプロセス即時終了)などを示します。
ジョブ定義スクリプト実行中に強制終了要求を受けた場合,ジョブコントローラはオペランドの指定に従って動作します。
このパラメーターの指定を省略すると,ジョブコントローラはDISABLEが指定されたと解釈して動作します。
trapコマンドについては,「9.3 シェル標準コマンド」の「trapコマンド(シグナルや強制終了要求を受けたときの動作を設定する)」を参照してください。
オペランド
- DISABLE
強制終了要求を受けたときに実行する動作をtrapコマンドで定義できません。ジョブコントローラは強制終了要求を受けた場合,後続のコマンドを実行しないでエラー終了します。
- TERM
強制終了要求を受けたときに実行する動作をtrapコマンドで定義できます。
ジョブコントローラは強制終了要求を受けた場合,trapコマンドで定義した動作を実行した後,後続のコマンドを実行しないでエラー終了します。
ただし,UNIX版では2回目の強制終了要求を受けた場合,ジョブコントローラの後処理を実行しないでジョブが即時終了します。
- CONT【UNIX限定】
強制終了要求を受けたときに実行する動作をtrapコマンドで定義できます。
ジョブコントローラは強制終了要求を受けた場合,trapコマンドで定義した動作に従います。また,強制終了要求を複数回受けても処理を継続します。
ただし,このオペランドはJP1/AJSから起動したジョブには指定できません。指定した場合,ジョブコントローラは環境ファイルの解析時にKNAX0474-Eメッセージを出力してエラー終了します。
- AUTO【UNIX限定】
ジョブコントローラは,ジョブの起動方法に応じてTERMまたはCONTが指定されたと解釈します。ジョブの起動方法に関わらず同じ環境ファイルを共通的に使用したい場合は,このオペランドを指定してください。
対象のジョブ
動作
JP1/AJSから起動したジョブ
TERMが指定されたと解釈して動作します。
JP1/AJS以外から起動したジョブ
CONTが指定されたと解釈して動作します。
なお,次のどれかの条件を満たした場合に,JP1/AJSから起動したジョブとみなします。
Advanced Shellのカスタムジョブから起動したジョブ
環境変数AJS_BJEX_STOPにTERMを設定した状態で起動したジョブ
1.および2.から起動した子孫ジョブ
オペランドごとの強制終了要求を受けたときの動作の詳細については「3.11 ジョブを強制終了する」を参照してください。
注意事項
- 【UNIX,Windows共通】
trapコマンドで強制終了要求を受けたときの動作を定義したジョブが強制終了要求を受けると,強制終了要求を受けたときの動作が完了するまでジョブは終了しません。そのため,長時間実行するコマンドや終了しない動作を定義するときはその点について十分に注意してください。
ジョブ定義スクリプト内でtrapコマンドによる動作定義をしても,ジョブ正常終了時の通常の後処理中は有効になりません。この間に強制終了要求を受けた場合,ジョブコントローラはtrapコマンドによる動作定義がないものと見なして動作します。
trapコマンドで定義した動作がエラー終了したり,exitコマンドでジョブを打ち切ると,ジョブはtrapコマンドで定義した動作内で最後に実行したコマンドの終了コードで終了します。しかし,このパラメーターにTERMを指定した場合,trapコマンドで定義した動作の終了コードはジョブ,およびジョブステップの終了コードには反映されないで,強制終了要求を受けたときの終了コードで終了します。
システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ環境ファイルでの定義が有効になります。
- 【UNIX限定】
次のどれかの条件を満たす場合,強制終了要求を受け,子孫プロセスの終了,trapコマンドで定義した動作の実行,一時ファイルの削除などの処理中に2回目の強制終了要求を受けると,作成した一時ファイルが削除されないで残るなど,後処理が完了しないことがあります。この場合は手動で一時ファイルを削除するなどの対処をしてください。
・オペランドにDISABLEを指定している。
・オペランドにTERMを指定している。
・オペランドにCONTを指定し,かつtrapコマンドによる動作定義がない。