🍉
killコマンドと主要なシグナル一覧
killコマンド
書式 | 説明 | 例 |
---|---|---|
kill [PID] | デフォルトの SIGTERM(15)シグナル を送信してプロセスを正常終了させる。 | kill 1234 |
kill -s [シグナル名] [PID] | 指定した シグナル名 を送信。 | kill -s SIGKILL 1234 |
kill -[シグナル名] [PID] | -s を省略して シグナル名 を直接指定。 | kill -SIGKILL 1234 |
kill -[シグナル番号] [PID] | シグナル番号 を指定して送信。 | kill -9 1234 |
kill -l | 使用可能なシグナル一覧 を表示。 | kill -l |
kill -- [PID] | -- を使うと、PIDがシグナル名と誤解されるのを防ぐ。 | kill -- 1234 |
kill -n [シグナル番号] [PID] | -n オプションでシグナル番号を指定して送信。 | kill -n 15 1234 |
よく使われるシグナル一覧
番号 | シグナル名 | 説明(意味) |
---|---|---|
1 | SIGHUP | ハングアップシグナル。端末切断時に送信され、プロセスを終了。 |
2 | SIGINT | 割り込みシグナル。Ctrl + C で送信され、プロセスを中断。 |
9 | SIGKILL | 強制終了シグナル。プロセスを即座に強制終了。無視できない。 |
15 | SIGTERM | 終了要求シグナル。プロセスに正常終了を要求。通常の終了方法。 |
18 | SIGCONT | プロセス再開シグナル。SIGSTOP または SIGTSTP で停止したプロセスを再開。 |
19 | SIGSTOP | 強制停止シグナル。プロセスを無条件で停止。無視できない。 |
20 | SIGTSTP | 端末停止シグナル。Ctrl + Z で送信され、プロセスを一時停止。fg で再開可能。 |
よく使われるシグナルの用途
1. SIGHUP(1)
用途: リモート接続の切断時に送信され、プロセスを終了。
無視方法: nohup コマンドでプロセスを保護。
例:
nohup long_running_command &
2. SIGINT(2)
用途: Ctrl + C で送信。プロセスを中断するための一般的な方法。
例:
sleep 600
# 実行中に Ctrl + C で中断
3. SIGKILL(9)
用途: プロセスを即座に強制終了。プロセスが終了要求 (SIGTERM) を無視する場合に使用。
無視不可: プロセスはこのシグナルを無視できない。
例:
kill -9 [PID]
4. SIGTERM(15)
用途: プロセスに正常終了を要求する。プロセスはシグナルを受け取り、適切に終了処理を実行。
例:
kill -15 [PID]
5. SIGCONT(18)
用途: 停止中のプロセス (SIGSTOP または SIGTSTP で停止) を再開。
例:
kill -CONT [PID]
6. SIGSTOP(19)
用途: プロセスを強制的に停止。一時停止ではなく、強制停止。無視不可。
例:
kill -STOP [PID]
7. SIGTSTP(20)
用途: Ctrl + Z でプロセスを一時停止し、bg でバックグラウンド実行、fg でフォアグラウンド再開。
例:
sleep 600
# 実行中に Ctrl + Z で停止
bg # バックグラウンドで再開
fg # フォアグラウンドで再開
Discussion