はじめに
Linuxでプロセスを終了させたいときに使う kill
コマンド。
実は「終了」専用ではなく「シグナルを送るコマンド」です。
シグナルにはたくさんの種類がありますが、試験や実務でよく出る代表的なものを 番号順 に整理してみました。
つまり signal は「特定のプロセス(PID)に向けて出す命令」だと考えると理解しやすいです。
あくまでもLinuC試験対策用の記事になりますので、よろしくお願いいたします。
プロセスとは
-
プログラムが実行されている状態のことをプロセスと呼びます。
-
例えば
vi
を起動すると「vi というプログラム」が OS によってプロセスとして動き始めます。 -
それぞれのプロセスには PID(Process ID) が割り当てられ、OS が管理します。
つまり signal は「特定のプロセス(PID)に向けて出す命令」だと考えると理解しやすいです。
1. SIGHUP(番号:1)
-
意味:ハングアップ。端末切断を知らせたり、デーモンに送ると「設定再読み込み」の合図になることも多い。
-
覚え方:
HUP = hang up
→ 電話をガチャンと切るイメージ。
→ 「セッションが切れた」「もう一度設定を読み込んでね」という感覚で覚えるとスッキリ。
2. SIGINT(番号:2)
-
意味:割り込み。実際には Ctrl + C を押したときに送られる。
-
覚え方:
INT = interrupt
→ 割り込む。
→ 「作業をちょっと止めて!」という合図。
3. SIGKILL(番号:9)
-
意味:強制終了。プロセスは必ず終了し、拒否できない。
-
覚え方:
KILL = 殺す
。
4. SIGTERM(番号:15)
-
意味:通常終了。プロセスに「終了してね」とお願いするシグナル。
→kill
コマンドで番号を省略するとデフォルトで送られる。 -
覚え方:
TERM = terminate
→ 終了。
→ 「まずは 15 で通常終了をお願い、ダメなら 9(KILL)」という流れが実務でも定番。
5. SIGCONT(番号:18)
-
意味:停止しているプロセスを再開する。
-
覚え方:
CONT = continue
→ 続ける。
→ 「一時停止してた動画を再生する」イメージで覚えると理解しやすい。
6. SIGSTOP(番号:19)
-
意味:強制的にプロセスを一時停止する。
-
覚え方:
STOP = 止める
。
→ 「19番 STOP、18番 CONT」でセットで覚えると便利。
kill と killall(補足)
-
kill:PIDを指定して signal を送る
-
killall:プロセス名を指定して signal を送る(同名まとめて対象)
試験では「プロセス名でまとめて終了できるのはどっち?」と問われるので、違いを押さえておけば十分です。
まとめ
-
kill は「プロセスを終了させる」ではなく「シグナルを送る」コマンド。
-
よく出る番号を番号順で押さえておけば試験でも安心。
コメント