kill コマンド

目的

実行中のプロセスにシグナルを送信します。

構文

シグナルをプロセスに送る場合

kill [ -s { SignalName | SignalNumber }] ProcessID ...

kill [ - SignalName | - SignalNumber ] ProcessID ...

シグナル名をリストする

kill -l [ ExitStatus ]

説明

kill コマンドは、実行中のプロセスにシグナル (デフォルトでは SIGTERM シグナル) を送信します。 このコマンドのデフォルトのアクションは、プロセスの通常停止です。 プロセスを停止したい場合は、ProcessID 変数にプロセス ID (PID) を指定します。 シェルはバックグラウンドで実行中の各プロセスの PID を報告します (複数のプロセスをパイプライン内で始動させない場合。複数のプロセスを始動させている場合は、シェルは最後のプロセスの番号を報告します)。 Ps コマンドを使用して、コマンドのプロセス ID 番号を検索することもできます。

root ユーザーは、kill コマンドを使用して任意のプロセスを停止させることができます。 root ユーザーでない場合、停止したいプロセスを開始しておく必要があります。

SignalName は、接頭部 SIG なしで、大文字と小文字を区別せずに認識されます。

SignalNumber に 0 が指定された場合、kill コマンドは、指定された PID の妥当性を検査します。

フラグ

項目 説明
-s {SignalName | SignalNumber} SIGKILL シグナルの -9 または KILL のように、 シグナル番号またはシグナル名としてシグナルを指定します。
-シグナル名 HUP のように、シグナル名を指定します。
-シグナル番号 シグナル番号を指定します。

注: この構文で、デフォルト・シグナルで負の値の PID を指定するには、シグナルとして - - を指定する必要があります。 指定しないと、最初のオペランドが SignalNumber として解釈されます。

ProcessID シグナル送信先のプロセスまたはプロセス・グループを表す 10 進整数を指定します。 PID が正の値の場合、kill コマンドは、プロセス ID が PID に等しいプロセスを送ります。 PID の値が 0 の場合、kill コマンドは、送信側のプロセス・グループ ID と等しいプロセス・グループ ID を持つすべてのプロセスにシグナルを送信します。 このシグナルは、PID が 0 または 1 のプロセスには送信されません。 PIDが-11の場合、killコマンドは、送信者の実効ユーザーが所有するすべてのプロセスにシグナルを送る。 このシグナルは、PID が 0 または 1 のプロセスには送信されません。 これが負数で-1でない場合、killコマンドは、PIDの絶対値と等しいプロセスグループIDを持つすべてのプロセスにシグナルを送る。
-l 稼働システムでサポートされているすべてのシグナル名をリストします。
-l終了ステータス 共通の SIG 接頭部を取り除いたシグナル名をリストします。 ExitStatus が 10 進整数値の場合、そのシグナルに対応するシグナル名が表示されます。 ExitStatus がシグナルによって終了されたプロセスに対応する終了状況の場合、そのプロセスを終了したシグナルに対応するシグナル名が表示されます。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 ProcessID オペランドについて 1 つ以上の照合プロセスが検出され、1 つ以上の照合プロセスに指定したシグナルが正常に送信されました。
>0 エラーが発生しました。

  1. 特定のプロセスを停止するには、次のコマンドを入力します。
    kill 1095
    これはプロセスを停止します1095デフォルトの シGTERM (S) シグナルを送信します。 以下のプロセスに注意してください1095 シGTERM (S) シグナルを無視またはオーバーライドする特別な調整を行った場合、実際には停止しない可能性があります。
  2. デフォルト・シグナルを無視する複数のプロセスを停止するには、次のコマンドを入力します。
    kill -kill 2098 1569
    これにより、シグナル 9 ( シグキル シグナル) がプロセスに送信されます。2098および1569 シグキル シグナルは、通常は無視することもオーバーライドすることもできない特殊なシグナルです。
  3. すべてのプロセスを停止し、自分自身をログオフするには、次のコマンドを入力します。
    kill -kill 0
    これによってシグナル 9、つまり SIGKILL シグナルが、送信側のプロセス・グループ ID に等しいプロセス・グループ ID を持つすべてのプロセスに送信されます。 シェルは SIGKILL シグナルを無視できないので、このコマンドはログイン・シェルも停止し、ログアウトします。
  4. 所有しているすべてのプロセスを停止するには、次のコマンドを入力します。
    kill -9 -1
    このコマンドにより、シグナル 9、つまり SIGKILL シグナルが、有効なユーザーが所有するすべてのプロセスに送信されます。このすべてのプロセスには、別のワークステーションで始動されたプロセスや別のプロセス・グループに属しているプロセスも含まれます。 ユーザーから要求されたリストが出力されているときも、プロセスは停止されます。
  5. 別のシグナル・コードをプロセスに送信するには、次のコマンドを入力します。
    kill  -USR1  1103
    SIGUSR1 などのようにプロセスを停止させないシグナルも多いので、kill というコマンド名は誤解を招きやすい名前です。 SIGUSR1 によるアクションは、ユーザーが実行中の特定のアプリケーションによって定義されます。

    注: この形式の kill コマンドで、 シグナル 15、つまり SIGTERM シグナルを送るには、-15 または TERM を明示的に指定する必要があります。

ファイル

項目 説明
/usr/include/sys/signal.h シグナル名を指定します。