5.2.4 バッチジョブの強制終了
バッチジョブの強制終了には次の2とおりの方法がある。
-
JP1/AJSからジョブを起動している場合,JP1/AJSの強制終了操作を実行する。※
-
bjexecプロセスにSIGTERMシグナルを送付する。
注※ AJS_BJEX_STOP環境変数にTERMの指定が必要である。
実行中のバッチジョブを強制終了すると,ジョブステップのプロセスグループに対してSIGKILLシグナルが送信し,ジョブステップのプロセスを強制終了する。強制終了の指示を複数回受けた場合,ジョブコントローラ自身が強制終了する。
(1) JP1/AJSから起動したジョブの強制終了操作
JP1/AJSの操作によって実行中のバッチジョブおよびジョブネットを強制終了できる。
また,強制終了の指示を受けたジョブネットは,新たなジョブを起動しなくなり,ジョブネット内の実行中のジョブすべてを強制終了する。この操作は,次に示すウィンドウ,またはajskillコマンド,もしくはjpqjobcanコマンドで操作できる。
-
[デイリースケジュール(階層表示)]ウィンドウ
-
[JP1/AJS3 - View]ウィンドウ
-
[マンスリースケジュール]ウィンドウ
-
[ジョブネットモニタ]ウィンドウ
ウィンドウによる強制終了,ajskillコマンド,およびjpqjobcanコマンドの詳細については,JP1のマニュアルを参照のこと。
上記の操作で強制終了をした場合,JP1/AJSで確認できるジョブの状態は,「異常検出終了」となる。
(2) bjexecプロセスにSIGTERMシグナルを送付
bjexecプロセスにSIGTERMシグナルを送付することで実行中のバッチジョブを強制終了できる。
bjexecプロセスのプロセスIDはbjexlslockコマンドのPIDの列に出力される。bjexlslockコマンドでbjexecプロセスのプロセスIDを参照し,SIGTERMシグナルを送付する。排他/共用制御機能を使用していない場合は,psコマンドなどで調べること。
(3) 注意事項
-
次に示すジョブステップ中のプロセスは強制終了されない。このようなプロセスは,killコマンドなどのほかの手段で終了させる必要がある。
-
setpgrpシステムコールなどを実行し,別プロセスグループとなっているプロセス
-
常駐プロセスなどから起動され,ジョブコントローラの子孫プロセスとなっていないプロセス
-
-
次に示す方法などでジョブコントローラ自身が強制終了させた場合,bjexlsjobコマンドは,実行中のジョブの終了時刻を出力しない。
-
ジョブコントローラに強制終了を複数回指示する。
-
ジョブコントローラにSIGKILLシグナルを送る。
-