kill
コマンドは、指定した プロセスにシグナルを送信 するためのコマンドです。
代表的にはプロセスを終了させる(SIGTERM
, SIGKILL
)用途で使われますが、終了以外にも一時停止や再開などの制御も可能です。
構文(Syntax)
kill [オプション] PID...
kill -s SIGNAL PID...
kill -SIGNAL PID...
主なオプション・シグナル一覧
オプション/シグナル | 説明 | 使用例 |
---|---|---|
(なし) = -15 | デフォルトで SIGTERM を送信(通常終了要求) | kill 1234 |
-9 / -SIGKILL | 強制終了 | kill -9 1234 |
-1 / -SIGHUP | プロセスを再起動(多くのデーモンが設定再読み込み) | kill -1 1234 |
-2 / -SIGINT | Ctrl+C と同じ割り込み | kill -2 1234 |
-STOP | プロセスを一時停止 | kill -STOP 1234 |
-CONT | 停止中のプロセスを再開 | kill -CONT 1234 |
-l | 利用可能なシグナル一覧を表示 | kill -l |
実行例
通常終了(SIGTERM)
kill 1234
(PID 1234 のプロセスに終了要求を送信)
強制終了(SIGKILL)
kill -9 1234
デーモンに設定再読み込みを要求
kill -HUP 5678
複数のプロセスを終了
kill 1234 5678 91011
シグナル一覧を表示
kill -l
出力例:
1) SIGHUP 2) SIGINT 3) SIGQUIT 9) SIGKILL 15) SIGTERM ...
プロセスを一時停止
kill -STOP 1234
停止したプロセスを再開
kill -CONT 1234
エラー例(存在しないPID)
kill 99999
出力例:
bash: kill: (99999) - No such process
関連コマンド
ps
: 実行中のプロセスを確認top
/htop
: 動的にプロセスを監視pkill
: プロセス名を指定して終了killall
: プロセス名で複数のプロセスをまとめて終了
備考
SIGTERM
(15)がデフォルトで送信されるが、アプリによっては無視される場合がある。SIGKILL
(9)は強制終了であり、プロセスは後処理を実行できないため注意が必要。kill
は「プロセスを殺す」コマンドというよりも「シグナルを送る」コマンド。終了以外の用途も多い。
参考
- manページ: man7.org kill(1)
- シグナル一覧: man7.org signal(7)
コメント