実務で頻出する「シグナル」関連の用語を、一言定義+最小実例でサッと確認。
プロセス間通信の基本であるシグナルの役割を理解し、安全な停止や再起動を設計できるようにします。
このページで達成できること
- よく使うシグナルの意味と使い分けを整理
killコマンドの本当の役割を理解- シグナルを受けたプロセス側のふるまいを確認
- 安全な停止・再起動手順を組み立てられる
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド |
|---|---|---|
| シグナル | プロセスへの非同期通知 | kill, trap |
| SIGTERM | 通常の終了要求 | kill -TERM |
| SIGKILL | 強制終了、捕捉不可 | kill -9 |
| SIGHUP | 端末切断、再読込に転用される | kill -HUP |
| SIGINT | Ctrl+C、割り込み | <Ctrl+C> |
| SIGTSTP | Ctrl+Z、一時停止 | <Ctrl+Z> |
| trap | シグナルを捕捉し処理する仕組み | trap |
| シグナル番号 | OS定義の整数値(例:15=TERM) | kill -l |
用語解説(繰り返しブロック)
シグナル(signal)
とは:プロセスに対して送られる非同期通知。終了要求、停止、再読込などの制御に使われる。
最小実例
kill -TERM <PID> # 通常の終了要求
関連:kill / pkill / trap
落とし穴:killは「終了」ではなく「シグナル送信」。動作は受け取ったプロセス次第。
SIGTERM
とは:通常の終了要求。プロセスに後片付けの機会を与える。
最小実例
kill -TERM <PID>
関連:kill / trap
落とし穴:プロセスが無視したり処理を長引かせることがある。
SIGKILL
とは:即時終了。捕捉・無視不可。
最小実例
kill -9 <PID>
関連:kill
落とし穴:後片付けを実行できないため、ファイル破損やリソースリークを招く。
SIGHUP
とは:端末切断の通知。本来はハングアップだが、設定ファイル再読込に使われることも多い。
最小実例
kill -HUP <PID>
関連:kill / trap / デーモン再読込
落とし穴:アプリによって意味が異なる。再読込が未実装な場合は単に終了する。
SIGINT
とは:割り込み(Ctrl+C)に対応するシグナル。
最小実例
<Ctrl+C>
関連:trap INT / 対話シェル
落とし穴:バッチ実行では使われないことが多い。
SIGTSTP
とは:一時停止(Ctrl+Z)。フォアグラウンドのジョブを停止状態にする。
最小実例
<Ctrl+Z>
関連:ジョブ制御 / fg / bg
落とし穴:停止中もメモリを占有したまま。
trap
とは:シェルスクリプト内でシグナルを捕捉し、任意の処理を定義する仕組み。
最小実例
trap 'echo cleanup; exit 0' TERM
sleep 100
関連:trap / exit / kill
落とし穴:SIGKILLやSIGSTOPは捕捉できない。
シグナル番号
とは:各シグナルに割り当てられた整数値。kill -lで一覧可能。
最小実例
kill -l | less
関連:man 7 signal
落とし穴:環境により番号が異なる場合がある。名前で指定する方が安全。
運用の現場Tips
- 停止手順の順序:TERM → HUP/QUIT → KILL の段階的アプローチ
- 設定再読込:SIGHUPを利用する習慣を持つと安全に反映できる
- trapの活用:一時ファイル削除やリソース解放を確実に行う
- KILLの使用:最後の手段として限定的に使用する

