15.2.17 JP1/AJS3から起動される子プロセスを,SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する方法
UNIX環境でJP1/AJS3のキューレスジョブを除くUNIXジョブおよびアクションジョブを実行する場合,ジョブ実行OSユーザーが使用するログインシェルによっては,ジョブが起動失敗となる,異常検出終了となる,または意図しない実行結果になるおそれがあります。これは,JP1/AJS3から起動される子プロセスが,SIGCHLDシグナルを無視する設定(SIG_IGN)で起動されるためです。JP1/AJS3で設定される子プロセスのシグナルについては,「(3) JP1/AJS3で設定する子プロセスのシグナル」を参照してください。
- 注意事項
-
-
JP1/AJS3またはJP1/AJS2 08-00以降を新規インストールする場合は,SIGCHLDシグナルを受信する設定(SIG_DFL)になっています。以降で説明している設定は必要ありません。
-
JP1/AJS2 07-50以前のバージョンからJP1/AJS3またはJP1/AJS2 08-00以降にバージョンアップインストールする場合は,JP1/AJS2 07-50以前の設定が引き継がれます。SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する場合は,以降で説明する設定が必要です。
-
SIGCHLDシグナルを受信する設定(SIG_DFL)で該当するジョブを実行できるようにするための設定方法を次に示します。
なお,キューレスジョブ実行機能では,次に示す設定は必要ありません。キューレスジョブ実行時にキューレスエージェントサービスから起動される子プロセスは,SIGCHLDシグナルを受信する設定(SIG_DFL)で起動されます。
(1) 設定方法1
JP1/AJS3からこの問題に該当するアプリケーションを起動する場合は,ジョブ実行OSユーザーのログインシェルにsh,csh,ksh(Linuxの場合は,cshのほかにbashも使用できます)を使用する,またはそのシェルを経由してアプリケーションを起動させてください。
(2) 設定方法2
(a) 定義手順
-
JP1/AJS3のサービスを停止する。
次のコマンドを実行して,プロセスがすべて停止していることを確認します。
# /etc/opt/jp1ajs2/jajs_stop※ # /opt/jp1ajs2/bin/jajs_spmd_status
- 注※
-
自動停止の設定がされていることを確認してください。
-
次のコマンドを実行して,「(b) 環境設定パラメーター一覧」の環境設定パラメーターを設定する。
jajs_config -k "定義キー名" "環境設定パラメーター名"=定義内容
-
JP1/AJS3を再起動する。
設定した内容が反映されます。
- 注意事項
-
SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する場合,上記の設定をジョブ実行ホスト上で設定してください。
(b) 環境設定パラメーター一覧
定義キー |
環境設定パラメーター |
定義内容 |
---|---|---|
[{JP1_DEFAULT|論理ホスト名}\JP1NBQAGENT\Job]※ |
"IsSigchldDefault"= |
JP1/AJS3から起動される子プロセスを,SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する定義 |
- 注※
-
{JP1_DEFAULT|論理ホスト名}の部分は,物理ホストの場合は「JP1_DEFAULT」を,論理ホストの場合は「論理ホスト名」を指定します。
環境設定パラメーターの定義内容の詳細については,「20.5.2(63) IsSigchldDefault」を参照してください。
(3) JP1/AJS3で設定する子プロセスのシグナル
シグナル名 |
プロセス生成時の設定 |
動作 |
---|---|---|
SIGHUP |
SIG_DFL(デフォルト) |
A |
SIGINT |
SIG_DFL(デフォルト) |
A |
SIGQUIT |
SIG_DFL(デフォルト) |
A |
SIGILL |
SIG_DFL(デフォルト) |
A |
SIGTRAP |
SIG_DFL(デフォルト) |
C,G |
SIGIOT |
SIG_DFL(デフォルト) |
C,G |
SIGEMT |
SIG_DFL(デフォルト) |
G |
SIGFPE |
SIG_DFL(デフォルト) |
C |
SIGBUS |
SIG_DFL(デフォルト) |
A,G |
SIGSEGV |
SIG_DFL(デフォルト) |
C |
SIGSYS |
SIG_DFL(デフォルト) |
G |
SIGPIPE |
SIG_DFL(デフォルト) |
A |
SIGALRM |
SIG_DFL(デフォルト) |
A |
SIGTERM |
SIG_DFL(デフォルト) |
A |
SIGUSR1 |
SIG_DFL(デフォルト) |
A |
SIGUSR2 |
SIG_DFL(デフォルト) |
A |
SIGCHLD |
SIG_DFL(デフォルト)※1 |
B |
SIG_IGN(無視)※2 |
H |
|
SIGPWR |
SIG_DFL(デフォルト) |
A,G |
SIGVTALRM |
SIG_DFL(デフォルト) |
A,G |
SIGPROF |
SIG_DFL(デフォルト) |
A,G |
SIGIO |
SIG_DFL(デフォルト) |
A,G |
SIGWINCH |
SIG_DFL(デフォルト) |
B,G |
SIGTSTP |
SIG_DFL(デフォルト) |
D |
SIGCONT |
SIG_DFL(デフォルト) |
I |
SIGTTIN |
SIG_DFL(デフォルト) |
D |
SIGTTOU |
SIG_DFL(デフォルト) |
D |
SIGURG |
SIG_DFL(デフォルト) |
B,G |
SIGLOST |
SIG_DFL(デフォルト) |
A,G |
- (凡例)
-
A:デフォルトの動作は,プロセスの終了(terminate the process)
B:デフォルトの動作は,このシグナルの無視(ignore the signal)
C:デフォルトの動作は,コアダンプ(dump core)
D:デフォルトの動作は,プロセスのストップ(stop the process)
E:キャッチできないシグナル
F:無視できないシグナル
G:POSIX.1に準拠しないシグナル
H:無視
I:デフォルトの動作は,プロセス停止からの再開(restart the process)
- 注※1
-
JP1/AJS3またはJP1/AJS2 08-00以降のバージョンを新規インストールした場合は,SIGCHLDシグナルを受信する設定(SIG_DFL)が設定されます。
- 注※2
-
JP1/AJS2 07-50以前からJP1/AJS3またはJP1/AJS2 08-00以降へバージョンアップインストールした場合は,SIGCHLDシグナルを無視する設定(SIG_IGN)が設定されます。