JP1/Advanced Shell

[目次][用語][索引][前へ][次へ]


3.9.2 シグナル受信時の動作【UNIX限定】

ジョブコントローラがシグナルを受信した場合の動作を次の表に示します。

表3-9 シグナル受信時の動作

シグナルの種類 trapコマンドによる動作定義がない場合 trapコマンドによる動作定義がある場合
終了要求シグナル SIGTERM 【Linuxの場合】
  • ルートジョブが受信した場合
    1回目:子孫プロセスの終了や一時ファイルの削除などの後処理を行ってから,後続コマンドを実行しないでシグナルによりエラー終了します。
    2回目:即時終了します。
  • 子孫ジョブが受信した場合
    受信した子孫ジョブは,受信メッセージAを出力し,後処理を実行してから,後続命令を実行しないでシグナルによりエラー終了します。
    このとき,受信した子孫ジョブの親のジョブは,終了した子孫ジョブの結果に従って,後続処理を実行します。※1
【AIXの場合】
1回目:子孫プロセスの終了や一時ファイルの削除などの後処理を行ってから,後続コマンドを実行しないでシグナルによりエラー終了します。
2回目:即時終了します。
trapコマンドで動作を定義できません。
SIGHUP,SIGINT,SIGXCPU,SIGXFSZ,SIGQUIT,SIGUSR1,SIGUSR2,SIGPIPE,SIGALRM,SIGVTALRM,SIGPROF 【Linuxの場合】
  • ルートジョブが受信した場合
    子孫プロセスの終了や一時ファイルの削除などの後処理を行ってから,後続命令を実行しないでシグナルによりエラー終了します。
  • 子孫ジョブが受信した場合
    受信した子孫ジョブの動作はルートジョブ受信時と同じです。
    ここで受信した子孫ジョブの親のジョブは,終了した子孫ジョブの結果に従って,後続処理を実行します。※1
【AIXの場合】
子孫プロセスの終了や一時ファイルの削除などの後処理を行ってから,後続命令を実行しないでシグナルによりエラー終了します。
【Linuxの場合】
  • ルートジョブが受信した場合
    trapコマンドで定義した動作に従います。
  • 子孫ジョブが受信した場合
    受信した子孫ジョブの動作はルートジョブ受信時と同じです。
    ここで受信した子孫ジョブの親のジョブは,子孫ジョブの結果に従って,後続処理を実行します。
【AIXの場合】
trapコマンドで定義した動作に従います。
SIGMSG,SIGDANGER,SIGMIGRATE,SIGPRE,SIGVIRT,SIGALRM1,SIGRECONFIG,SIGCPUFAIL,SIGGRANT,SIGRETRACT,SIGSOUND 上記と同様です。【AIX限定】 上記と同様です。【AIX限定】
異常通知シグナル SIGILL,SIGTRAP,SIGABRT,SIGFPE,SIGBUS,SIGSEGV,SIGSYS 【Linuxの場合】
  • ルートジョブが受信した場合
    対象シグナルに対するOSのデフォルトの動作に従ってプログラムを終了します。
  • 子孫ジョブが受信した場合
    受信した子孫ジョブの動作はルートジョブ受信時と同じです。
    ここで受信した子孫ジョブの親のジョブは,終了した子孫ジョブの結果に従って,後続処理を実行します。※1
【AIXの場合】
対象シグナルに対するOSのデフォルトの動作に従ってプログラムを終了します。
【Linuxの場合】
  • ルートジョブが受信した場合
    trapコマンドで定義した動作に従います。
  • 子孫ジョブが受信した場合
    受信した子孫ジョブの動作はルートジョブ受信時と同じです。
    ここで受信した子孫ジョブの親のジョブは,子孫ジョブの結果に従って,後続処理を実行します。
【AIXの場合】
trapコマンドで定義した動作に従います。
SIGLOST,SIGIOT,SIGEMT 上記と同様です。【AIX限定】 上記と同様です。【AIX限定】
上記以外 【Linuxの場合】
  • ルートジョブが受信した場合
    対象シグナルに対するOSのデフォルトの動作に従います。
  • 子孫ジョブが受信した場合
    受信した子孫ジョブの動作はルートジョブ受信時と同じです。
    ここで受信した子孫ジョブの親のジョブは,子孫ジョブの結果に従って,後続処理を実行します。※1
【AIXの場合】
対象シグナルに対するOSのデフォルトの動作に従います。
【Linuxの場合】
  • ルートジョブが受信した場合
    trapコマンドで定義した動作に従います。※2
  • 子孫ジョブが受信した場合
    受信した子孫ジョブの動作はルートジョブ受信時と同じです。
    ここで受信した子孫ジョブの親のジョブは,子孫ジョブの結果に従って,後続処理を実行します。
【AIXの場合】
trapコマンドで定義した動作に従います。※2

注※1

注※2


注意
trapコマンド使用時,動作に「-」を設定するとシグナル受信時の動作がデフォルトに戻ります。

[目次][前へ][次へ]


[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.