UNIX/Linuxの部屋 killallコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド killall コマンド名を指定して kill このエントリーをはてなブックマークに追加

以下は、BSD・Linux の killall の説明である。

オプション:
-l シグナル一覧を表示
-m コマンド名を正規表現で指定する
-s シグナルを送るプロセスを表示する。実際にはシグナルは送らない。

まず kterm をバックグラウンドで実行する。
% kterm &
[1] 4985
kterm を kill したくなったが、ps でプロセス ID を調べるのが面倒である。そこで killall を使う。まずは -s オプションを付けて、どのプロセスにシグナルが送られるか確認する。
% killall -s kterm
kill -TERM 4985
今度は本当に kterm を kill する。
% killall kterm

inetd を再起動する場合は以下のようにする。
# killall -HUP inetd

もし指定のコマンドに該当するものが複数個ある場合は、全てのプロセスにシグナルを送る。だから上の例を X 上の kterm から実行すると、全ての kterm が終了してしまう。

killall のオプションを複数指定するときは
% killall -ms
などとせずに
% killall -m -s
としなくてはならない。

一方、Solaris の killall は、全プロセスを終了させるコマンドである。これは root 権限がないと実行できない。
% su
# killall
とするだけで、daemon を含むほとんどのプロセスが終了してしまうので、BSD・Linux の killall に慣れている人は注意した方がよいだろう。
>> Linuxオンラインマニュアル(man) Linux killall(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD killall(1)