🍉

killコマンドと主要なシグナル一覧

2025/02/07に公開

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  # フォアグラウンドで再開
株式会社KOMPEITO テックブログ

Discussion