JP1/Automatic Job Management System 3 導入ガイド
JP1/AJS3は,ジョブの強制終了要求や,JP1/AJS3のサービスの強制停止要求を受け付けた場合に,実行中のジョブを強制停止します。
- <この項の構成>
- (1) 実行ホストがWindowsの場合
- (2) 実行ホストがUNIXの場合
- (3) JP1/Scriptで作成されたジョブの強制停止
(1) 実行ホストがWindowsの場合
強制停止対象となるプログラム(実行先のエージェントホストがWindowsの場合)を次に示します。
- JP1/AJS3から直接起動したプログラム(ジョブ)
- jp1execコマンドで起動したプログラム(コマンド)
これらのプログラムの停止処理は,Win32APIのTerminateProcess関数を実行します。TerminateProcess関数の仕様については,Windowsの資料を参照してください。ユーザープログラムから起動されたプログラム(子プロセス)については停止処理を実行しません。
(2) 実行ホストがUNIXの場合
強制停止対象となるプログラム(実行先のエージェントホストがUNIXの場合)を次に示します。
- JP1/AJS3から直接起動したプログラム(ジョブ)
- ユーザープログラムから起動されたプログラム(ただし,setpgrpシステムコールなどでプロセスグループを変更している場合は停止されません)
これらのプログラムの停止処理は,そのプロセスグループに対してSIGKILLを送信することで実行されます。プロセスグループとSIGKILLの詳細については,UNIXのプロセス制御に関する資料を参照してください。
JP1/AJS3からJP1/Scriptで作成されたジョブプロセス(拡張子が.spt)を強制終了する場合,JP1/Scriptのスクリプト制御インタフェース(SPTHTerminate)が使用されます(スクリプト制御インタフェースについては,マニュアル「JP1/Script(Windows(R)用)」を参照してください)。このインタフェースによって,JP1/Scriptのプロセス(.spt)から起動した子プロセスも終了されます。
なお,起動した子プロセスが,JP1/Scriptのプロセス(.spt)なのか,またはJP1/Scriptのプロセス(.spt)以外なのかによって終了される範囲が変わってきます。具体的には次の表のようになります。
表5-6 プロセスが終了される範囲
パターン 呼び出し順序 JP1/AJS3プロセス(呼び出し順序が1のプロセス)が
強制終了した場合に終了されるプロセスの範囲パターン1
- JP1/AJS3プロセス
- JP1/Scriptプロセス
- JP1/Scriptプロセス以外のプロセス
呼び出し順序が3のプロセスまで終了されます。 パターン2
- JP1/AJS3プロセス
- JP1/Scriptプロセス
- JP1/Scriptプロセス
- JP1/Scriptプロセス以外のプロセス
呼び出し順序が4のプロセスまで終了されます。 パターン3
- JP1/AJS3プロセス
- JP1/Scriptプロセス
- JP1/Scriptプロセス以外のプロセス
- JP1/Scriptプロセス以外のプロセス
呼び出し順序が3のプロセスまで終了されます(呼び出し順序が4のプロセスは終了されません)。 ただし,JP1/AJS3からの強制終了要求から30秒経過してもJP1/Scriptプロセスが終了しない場合は,Win32 APIのTerminateProcess関数を使用してJP1/Scriptプロセスを強制終了します。TerminateProcess関数を使用した場合,子プロセスは終了されませんので,上記の各パターンの呼び出し順序2のJP1/Scriptプロセスだけが終了されることになります。
Copyright (C) 2009, 2014, Hitachi, Ltd.
Copyright (C) 2009, 2014, Hitachi Solutions, Ltd.