utte

killall 名前が一致するプロセスすべてにシグナルを送る

killall [オプション] 名前...

試してみる

主なオプション

-シグナル / -s シグナル送るシグナルを指定する。省略すると SIGTERM
-vシグナルを送れたかどうかを表示する
-u ユーザー指定したユーザーのプロセスだけを対象にする
-i1つずつ確認してから送る
-w対象のプロセスが終了するまで待つ
-lシグナル名の一覧を表示する

解説

名前でまとめて止める

killall は、プロセス名が一致するプロセスすべてにシグナルを送ります。同じプログラムが複数動いているとき、PID を1つずつ調べずに済みます。シグナルを指定しなければ、SIGTERM(15)です。

名前は完全一致

killall sleep は、名前がちょうど sleep のプロセスだけが対象です。pkill の既定のような部分一致はしません。長い名前は、先頭15文字で照合されます。

一致するものがないとき

該当するプロセスが1つもないと、sleep: no process found と表示して終了コード 1 を返します。

他のシステムでの注意

Linux の killall は、ここで説明した名前一致のコマンドです。一方、Solaris などの一部のUNIXでは、killall がシステム上のすべてのプロセスを終了させる別のコマンドです。Linux の感覚で他のUNIXで実行しないよう注意してください。

kill / pkill との使い分け

PID が分かっているなら kill、名前で選ぶなら killall か pkill です。killall は完全一致で安全、pkill は条件を柔軟に組み合わせられます。

関連するコマンド

LinuC 101の出題範囲