killall コマンドは、指定された名前に一致するすべてのプロセスに、指定されたシグナルまたはデフォルトの終了シグナルを送信します。 pkill に似ていますが、プロセス名を正確に一致させるなど、いくつかの機能上の違いがあります。構文は次のとおりです:
# killall [-u user] [-signal] name...
実証するために、睡眠プログラムのいくつかのインスタンスを開始してから終了します。
$ sleep 500 & [1] 18801 $ sleep 600 & [2] 18802
$ killall sleep [1]- Terminated sleep [2]+ Terminated sleep
kill と同様に覚えておいてください。自分のものではないプロセスにシグナルを送信するには、スーパーユーザー権限が必要です。
killall コマンドの実行中に以下のエラーが発生した場合:
killall: command not found
ディストリビューションの選択に従って、以下のパッケージをインストールできます:
OS 分布 | コマンド |
---|---|
Debian | apt-get インストール psmisc |
Ubuntu | apt-get インストール psmisc |
アルパイン | apk add psmisc |
Arch Linux | pacman -S psmisc |
カリ Linux | apt-get インストール psmisc |
CentOS | yum install psmisc |
Fedora | dnf インストール psmisc |
Raspbian | apt-get インストール psmisc |
killall コマンドの例
1. 指定されたすべてのコマンドを強制終了するには:
# killall
2. すべての既知のシグナルを一覧表示するには:
# killall -l # killall --list
3. プロセスが強制終了されていない場合でも文句を言わないでください:
# killall -q # killall --quiet
4. SIGTERM の代わりに指定されたシグナルを送信するには:
# killall -s 9 bash # killall --signal 9 bash
5. 特定のユーザーが所有するプロセスを強制終了するには:
# killall -u mike
6. 詳細モードに設定するには:
# killall -v # killall --verbose
7. バージョンを表示するには:
# killall -V # killall --version
8. 強制終了されたすべてのプロセスが終了するまで待機するように指定するには:
# killall -w # killall --wait
9. 指定されたセキュリティ コンテキストでプロセスを強制終了するには:
# killall -Z # killall --context
10. 終了前にインタラクティブに確認を求める:
# killall -i process_name
11. SIGINT (割り込み) シグナルを使用してプロセスを終了します。これは、`Ctrl + C` を押すことによって送信されるシグナルと同じです:
# killall -INT process_name
12. プロセスを強制終了します:
# killall -KILL process_name
結論
ps と組み合わせてよく使用されるコマンドは、kill と killall です。 ps を実行すると、プロセス ID の略である PID を表示する列があることがわかりました。プロセスが正しく実行されていない、ハングしている、またはプロセスを終了したい場合、1 つの方法は kill コマンドを使用することです。たとえば、PID が 123 の場合、PID を渡すだけです。
# kill 123
PID ではなく名前でプロセスを一致させたい場合は、killall を使用できます。たとえば、Firefox がフリーズしていて、強制終了したい場合:
# killall firefox