3.11.2 シグナル受信時の動作【UNIX限定】
通常実行時とデバッグ実行時の,ジョブコントローラがシグナルを受信した場合の動作を説明します。
- 〈この項の構成〉
(1) 通常実行時
通常実行時にジョブコントローラがシグナルを受信した場合の動作について,SIGTERMシグナルと,それ以外に分けて示します。
(a) SIGTERMの場合
SIGTERMを受信した場合の動作は環境設定パラメーターTRAP_ACTION_SIGTERMの指定に従います。
trapコマンドによる動作定義がない場合 |
trapコマンドによる動作定義がある場合 |
---|---|
|
trapコマンドで動作を定義できません。※3 |
- 注※1
環境設定パラメーターTRAP_ACTION_SIGTERMを指定しなかった場合も含みます。
- 注※2
子孫ジョブのシグナル受信時の動作の詳細については,「(3) シグナル受信時の子孫ジョブの動作」を参照してください。
- 注※3
trapコマンドでSIGTERMに対する動作を定義しようとすると,trapコマンドがエラーとなりジョブが終了します。
trapコマンドによる動作定義がない場合 |
trapコマンドによる動作定義がある場合 |
---|---|
|
|
- 注※
子孫ジョブのシグナル受信時の動作の詳細については,「(3) シグナル受信時の子孫ジョブの動作」を参照してください。
ジョブの起動方法 |
trapコマンドによる動作定義がない場合 |
trapコマンドによる動作定義がある場合 |
---|---|---|
JP1/AJSから起動した場合 (カスタムジョブからの起動,または環境変数AJS_BJEX_STOPにTERMを設定した状態での起動) |
ジョブ定義スクリプトを実行しないでジョブがエラー終了します(環境ファイル解析時のエラー)。 |
|
JP1/AJS以外から起動した場合 (上記以外の方法による起動) |
|
|
- 注※
子孫ジョブのシグナル受信時の動作の詳細については,「(3) シグナル受信時の子孫ジョブの動作」を参照してください。
ジョブの起動方法 |
trapコマンドによる動作定義がない場合 |
trapコマンドによる動作定義がある場合 |
---|---|---|
JP1/AJSから起動した場合 (カスタムジョブからの起動,または環境変数AJS_BJEX_STOPにTERMを設定した状態での起動) |
TERMを指定した場合と同じ動作です。 |
|
JP1/AJS以外から起動した場合 (上記以外の方法による起動) |
CONTを指定した場合と同じ動作です。 |
(b) SIGTERM以外の場合
シグナルの種類 |
trapコマンドによる動作定義がない場合 |
trapコマンドによる動作定義がある場合 |
|
---|---|---|---|
終了要求シグナル |
SIGHUP,SIGINT,SIGXCPU,SIGXFSZ,SIGQUIT,SIGUSR1,SIGUSR2,SIGPIPE,SIGALRM,SIGVTALRM,SIGPROF |
|
|
異常通知シグナル |
SIGILL,SIGTRAP,SIGABRT,SIGFPE,SIGBUS,SIGSEGV,SIGSYS |
|
|
上記以外 |
|
|
- 注※1
子孫ジョブのシグナル受信時の動作の詳細については,「(3) シグナル受信時の子孫ジョブの動作」を参照してください。
- 注※2
SIGKILLとSIGSTOPについては,trapコマンドで動作を定義できません。
- 重要
trapコマンド使用時,動作に「-」を設定するとシグナル受信時の動作がデフォルトに戻ります。
デバッグ実行時の動作がこれらの表と異なるシグナルがあります。trapコマンドによる動作定義の有無とシグナルの動作の差異については,「(2) デバッグ実行時」を参照してください。
(2) デバッグ実行時
シグナルの種類 |
trapコマンドによる動作定義がない場合 |
trapコマンドによる動作定義がある場合 |
---|---|---|
SIGINT |
デバッガがジョブ定義スクリプトの実行を停止させて,デバッガのコマンド入力待ちとなります。※ |
デバッガがジョブ定義スクリプトの実行を停止させて,デバッガのコマンド入力待ちとなります。※ また,trapコマンドで定義した動作に従います。 |
SIGCHLD, SIGTSTP, SIGTTOU, SIGURG, SIGWINCH, SIGIO, SIGPWR, SIGSTKFLT, リアルタイムシグナル |
後続処理を続行します。 |
trapコマンドで定義した動作に従います。 |
- 注※
ジョブ定義スクリプトの停止については,「6.2 CUIのデバッガ【UNIX限定】」を参照してください。