Killall

killallは、UNIX系オペレーティングシステムで利用できるコマンドラインユーティリティです。このコマンドは、その実装によって大きく異なる2種類の動作をします。

System V系(SolarisLinuxのsysvinitなど)におけるkillall

System V系の実装では、killallは非常に強力かつ危険なコマンドです。このバージョンは、ユーザーが強制終了できる全てのプロセスを強制的に終了させます。root権限で実行した場合、事実上システム全体を停止させることが可能になります。そのため、この実装のkillallは慎重な使用が求められます。

psmiscツールにおけるkillall

一方で、psmiscツールに含まれるkillallは、pkillやskillコマンドと似た動作をします。このバージョンでは、コマンドラインで指定されたプロセスのみを強制終了させます。このため、System V系と比較して安全性が高く、より細やかなプロセス管理が可能です。

共通の動作

どちらのバージョンのkillallも、プロセスに対してシグナルを送るという点は共通しています。デフォルトではSIGTERMシグナルが送られますが、オプションで他のシグナルも指定できます。

使用例

System V版での全プロセス強制終了
bash
killall

このコマンドは、ユーザーが強制終了できる全てのプロセスを終了させます。root権限で実行すると、システムが停止する可能性があります。

Linux版でのシグナル一覧表示
bash
killall -l

このコマンドは、killallがプロセスに送ることができるシグナルの一覧を表示します。

Linux版での特定のプロセスへのシグナル送信
bash
killall -s USR1 dd

このコマンドは、ddプロセスに対してUSR1シグナルを送信します。

Linux版での特定のプロセス強制終了
bash
killall -9 dd

このコマンドは、ddプロセスに対してSIGKILLシグナル(シグナル番号9)を送信し、プロセスを強制終了させます。

シグナルについて

killallはデフォルトでSIGTERMシグナルをプロセスに送ります。これは、プロセスに正常な終了を要求するシグナルです。しかし、`-s`オプションや数値オプションを用いることで、プロセスに送るシグナルを任意に指定できます。例えば、`-9`オプションは、プロセスにSIGKILLシグナル(シグナル番号9)を送り、強制終了させます。

関連コマンド

kill: プロセスIDを指定してシグナルを送るコマンド。
pidof: プロセス名からプロセスIDを取得するコマンド。
pkill: プロセス名やその他の条件でプロセスを検索し、シグナルを送るコマンド。

参考資料

MANPAGE of killall JM Project
killall(1M) Solaris 10 Reference Manual Collection (英語)
killall(1M) man page(HP-UX リファレンス)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。