killall コマンドを使用して、指定したプログラムまたはユーザー名に一致する複数のプロセスにシグナルを送信することもできます。構文は次のとおりです:
# killall [-u user] [-signal] name...
実証するために、睡眠プログラムのいくつかのインスタンスを開始してから終了します。
$ sleep 500 & [1] 18801 $ sleep 600 & [2] 18802
$ killall sleep [1]- Terminated sleep [2]+ Terminated sleep
kill と同様に、自分に属していないプロセスにシグナルを送信するには、スーパーユーザー権限が必要であることを忘れないでください。
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