16.26 JP1/AJS2から起動される子プロセスを,SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する方法

UNIX環境でJP1/AJS2のUNIXジョブ,アクションジョブを実行する場合,ジョブの実行ユーザーが使用するログインシェルによっては,ジョブが異常終了したり,意図しない実行結果になったりすることがあります。これは,JP1/AJS2から起動される子プロセスが,SIGCHLDシグナルを無視する(SIG_IGN)設定で起動されるためです。SIGCHLDシグナルを受信するデフォルト(SIG_DFL)で実行できるようにするための設定方法を次に示します。なお,JP1/AJS2で設定される子プロセスのシグナルについては,「(3) JP1/AJS2で設定する子プロセスのシグナル」を参照してください。

注※
ジョブの実行先サービスに[JP1/AJS2 Queueless Agent]を指定した場合を除きます。
注意事項
  • JP1/AJS2 08-00以降を新規インストールする場合は,SIGCHLDシグナルを受信する設定になっています。以降で説明している設定は必要ありません。
  • JP1/AJS2 07-50以前のバージョンからJP1/AJS2 08-00以降をバージョンインストールする場合は,JP1/AJS2 07-50以前の設定が引き継がれます。SIGCHLDシグナルを受信する設定に変更する場合は,以降で説明する設定が必要です。
<この節の構成>
(1) 設定方法1
(2) 設定方法2
(3) JP1/AJS2で設定する子プロセスのシグナル

(1) 設定方法1

JP1/AJS2から上記に該当するアプリケーションを起動する場合は,ジョブ実行ユーザーのログインシェルにsh,csh,ksh(Linuxの場合はcsh)を使用する,またはそのシェルを経由してアプリケーションを起動させてください。

(2) 設定方法2

(a) 定義手順

  1. JP1/AJS2のサービスを停止する。
    次のコマンドを実行して,プロセスがすべて停止していることを確認します。

    # /etc/opt/jp1ajs2/jajs_stop
    # /opt/jp1ajs2/bin/jajs_spmd_status

    注※
    自動停止の設定が行われていることを確認してください。
  2. viなどのテキストエディターで,(b)の定義パラメーターを記述した設定ファイルを作成する。
    設定ファイルのファイル名は任意です。
  3. ファイルを保存し,次のコマンドを実行する。

    jbssetcnf 設定ファイル名

    jbssetcnfコマンドのパスは,「/opt/jp1base/bin/jbssetcnf」です。
    jbssetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
  4. JP1/AJS2を再起動する。
    設定ファイルに記述した内容が反映されます。
注意事項
SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する場合,ジョブを実行するホスト上で設定してください。

(b) 定義パラメーター一覧

表16-31 JP1/AJS2から起動される子プロセスを,SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する定義パラメーター

定義キー環境設定パラメーター定義内容
[{JP1_DEFAULT|論理ホスト名}¥JP1NBQAGENT¥Job]"IsSigchldDefault"=JP1/AJS2から起動される子プロセスを,SIGCHLDシグナルを受信する設定(SIG_DFL)に変更する定義
注※
{JP1_DEFAULT|論理ホスト名}の部分は,物理ホストの場合は「JP1_DEFAULT」を,論理ホストの場合は「論理ホスト名」を指定します。

(c) 定義内容

"IsSigchldDefault"=dword:00000000|00000001
SIGCHLDを受信するデフォルト(SIG_DFL)で実行するかどうかを指定します。
0
SIGCHLDシグナルを無視する場合に指定します。
1
デフォルト(SIG_DFL)で実行する場合に指定します。
デフォルトは「0」です。
このパラメーターは,JP1/AJS2の新規のインストール時および新規のセットアップ時に「1」が設定されます。

(3) JP1/AJS2で設定する子プロセスのシグナル

表16-32 JP1/AJS2で設定する子プロセスのシグナル

シグナル名プロセス生成時の設定動作
SIGHUPSIG_DFL(デフォルト)A
SIGINTSIG_DFL(デフォルト)A
SIGQUITSIG_DFL(デフォルト)A
SIGILLSIG_DFL(デフォルト)A
SIGTRAPSIG_DFL(デフォルト)C,G
SIGIOTSIG_DFL(デフォルト)C,G
SIGEMTSIG_DFL(デフォルト)G
SIGFPESIG_DFL(デフォルト)C
SIGBUSSIG_DFL(デフォルト)A,G
SIGSEGVSIG_DFL(デフォルト)C
SIGSYSSIG_DFL(デフォルト)G
SIGPIPESIG_DFL(デフォルト)A
SIGALRMSIG_DFL(デフォルト)A
SIGTERMSIG_DFL(デフォルト)A
SIGUSR1SIG_DFL(デフォルト)A
SIGUSR2SIG_DFL(デフォルト)A
SIGCHLDSIG_DFL(デフォルト)※1B
SIG_IGN(無視)※2H
SIGPWRSIG_DFL(デフォルト)A,G
SIGVTALRMSIG_DFL(デフォルト)A,G
SIGPROFSIG_DFL(デフォルト)A,G
SIGIOSIG_DFL(デフォルト)A,G
SIGWINCHSIG_DFL(デフォルト)B,G
SIGTSTPSIG_DFL(デフォルト)D
SIGCONTSIG_DFL(デフォルト)I
SIGTTINSIG_DFL(デフォルト)D
SIGTTOUSIG_DFL(デフォルト)D
SIGURGSIG_DFL(デフォルト)BG
SIGLOSTSIG_DFL(デフォルト)AG
(凡例)
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/AJS2 08-00以降のバージョンを新規インストールした場合はSIG_DFL(デフォルト)が設定されます。
注※2
JP1/AJS2 07-50以前からJP1/AJS2 08-00以降へバージョンアップインストールした場合は,SIG_IGN(無視)が設定されます。