Kill 組込みコマンドはプロセスにシグナルを送ります。
kill [シグナル指定オプション] プロセス…
kill -l [-v] [シグナル…]
-l
オプションを付けずに実行すると、kill コマンドは指定したプロセスにシグナルを送信します。送信するシグナルの種類はシグナル指定オプションで指定します。シグナルの種類を指定しない場合は SIGTERM シグナルを送信します。
-l
オプションを付けて実行すると、kill コマンドは指定したシグナルに関する情報を標準出力に出力します。-v
オプションを指定していない場合は単にシグナル名を出力し、指定している場合はシグナル番号・シグナル名・シグナルの簡単な説明を出力します。シグナルを指定しない場合は全てのシグナルに関する情報を表示します。
-シグナル
, -s シグナル
, -n シグナル
シグナル指定オプションは一つまでしか指定できません。
-l
-v
-v
オプションを指定したときは -l
オプションは指定しなくても構いません。
Kill コマンドでは、POSIX 準拠モードであるかどうかにかかわらずオプションはオペランドより先に全て指定しなければなりません。最初のオペランドより後にあるコマンドライン引数は全てオペランドとして解釈します。
-
) を付けます。プロセスとして 0
を指定すると、シェルプロセスが属するプロセスグループを指定したものとみなします。プロセスとして -1
を指定すると、全てのプロセスにシグナルを送信します。
エラーがない限り kill コマンドの終了ステータスは 0 です。一つ以上のプロセスにシグナルを送ることができた場合、他にシグナルを送れなかったプロセスがあったとしても終了ステータスは 0 になります。
Kill コマンドは準特殊組込みコマンドです。
負数に見えるコマンドライン引数の扱いには注意が必要です。例えば kill -1 -2
では -1
がシグナル指定オプション、-2
がオペランドとなるので、番号 1 のシグナルをプロセスグループ 2 に送信します。kill -- -1 -2
や kill -TERM -1 -2
では -1
と -2
はどちらもオペランドになります。
POSIX には -v
および -n
オプションに関する規定はありません。よってこれらのオプションは POSIX 準拠モードでは使えません。また POSIX は -s
オプションの引数としてシグナル番号を指定することを認めていません。POSIX はシグナルのオペランドとしてシグナルの名前を指定することを認めていません。
POSIX は、シグナル名は INT
や QUIT
のように最初の SIG を除いた形で指定しなければならないと規定しています。非 POSIX 準拠モードの yash では、拡張として SIG を付けた形でも指定できますし、シグナル名の大文字と小文字を区別しません。