Hitachi

JP1 Version 11 JP1/Advanced Shell 


3.11.3 強制終了時のジョブの動作【Windows限定】

Windowsでの強制終了時のジョブの動作を次に示します。

なお,trapコマンドによって,TerminateProcessなどによるプロセス即時終了に対する動作を定義する場合,TRAP_ACTION_SIGTERMパラメーターにTERMを指定してください。

表3‒16 強制終了時のジョブの動作

強制終了方法

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

制御信号

CTRL+C

CTRL+BREAK

CTRL_CLOSE_EVENT

制御信号は,ルートジョブ,子孫ジョブ,およびコマンドとして動作するすべてのプロセスグループに対して送信されます。

  • 制御信号を受信したルートジョブ(adshexec.exe)の場合

    子プロセスadshexecsub.exeが後続のスクリプトを実行しないで後処理を実行して終了します。制御信号を受信したadshexec.exeは子プロセスの終了を待ってから終了します。

  • 制御信号を受信したルートジョブ(adshexecsub.exe)および子孫ジョブの動作

    制御信号を受信したadshexecsub.exeは,メッセージKNAX7896-Iを出力し,後続のスクリプトを実行しないで後処理を実行して終了します。

trapコマンドで動作を定義できません

CTRL_LOGOFF_EVENT

OSのログオフやシャットダウン処理を優先するため,後処理を実行しないで即時終了します。

trapコマンドで動作を定義できません

CTRL_SHUTDOWN_EVENT

TerminateProcessなどによるプロセス即時終了

  • 即時終了の対象がルートジョブ(adshexec.exe)の場合

    対象となるadshexec.exeは即時終了しますが,その子プロセスのadshexecsub.exeおよび子孫ジョブは後続のスクリプトを実行しないで後処理を実行して終了します。

  • 即時終了の対象がルートジョブ(adshexecsub.exe)の場合

    対象となるadshexecsub.exeは後処理を実行しないで即時終了します(このプロセスは即時終了しないでください)。

  • 即時終了の対象が子孫ジョブの場合

    対象となる子孫ジョブは後処理を実行しないで即時終了します(このプロセスは即時終了しないでください)。このとき,終了させられた子孫ジョブの親のジョブは,子プロセスが終了コード1でエラー終了した場合の動作に従って,後処理を実行します。

  • 即時終了の対象がルートジョブ(adshexec.exe)の場合

    対象となるadshexec.exeは即時終了しますが,その子プロセスのadshexecsub.exeおよび子孫ジョブはtrapコマンドで定義した動作を実行し,後処理を実行して終了します。

  • 即時終了の対象がルートジョブ(adshexecsub.exe)の場合

    対象となるadshexecsub.exeは後処理を実行しないで即時終了します(このプロセスは即時終了しないでください)。

  • 即時終了の対象が子孫ジョブの場合

    対象となる子孫ジョブは後処理を実行しないで即時終了します(このプロセスは即時終了しないでください)。このとき,終了させられた子孫ジョブの親のジョブは,子プロセスが終了コード1でエラー終了した場合の動作に従って,後処理を実行します。

注意事項

trapコマンド使用時,動作に「-」を設定すると,該当強制終了要求を受けたときの動作が無効になり,何も設定されていない状態に戻ります。