No.074プロセスとジョブ
kill
キル・シグナル送信
プロセスへシグナルを送ります。単純な終了だけでなく、設定再読込、割り込み、存在確認などにも使える重要コマンドです。
答えよく使う形
注意危険度は中程度です。
$ sleep 300 &
echo $!
kill -0 $! && echo ok
12345 ok
$ sleep 300 &
kill $!
wait $! 2>/dev/null || echo terminated
terminated
$ kill 1234
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中で30 コマンド・24 駅め / 30LPIC-1・56 駅め / 106
どんなコマンド?
異常プロセスの停止、サービスの再読み込み要求、調査用の存在確認、ジョブ制御と組み合わせた対話操作に使います。
killは、プロセスへシグナルを送るコマンドです。名前から必ず終了させる道具に見えますが、本質はシグナル送信であり、既定では穏やかな終了要求であるSIGTERMを送ります。
実務では、異常プロセスの停止だけでなく、設定再読み込みにHUPを送る、存在確認としてシグナル0を送るといった使い方もあります。
特に重要なのは、いきなりSIGKILLを使わないことです。まずTERMで終了機会を与え、どうしても止まらない時だけKILLを検討します。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ kill
使用例と実行結果
行を押すとコピーできます。
12345 ok
terminated
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 2
つまずいたとき
killしたのにすぐ止まらない
原因既定のTERMは穏やかな終了要求であり、後処理中のことがあります。
こうする少し待ち、必要ならログを確認した上で最終手段としてKILLを検討します。
kill -9ばかり使ってしまう
原因シグナルの役割を分けて理解していません。
こうするまずTERMを試し、KILLは最後にします。
終わったときの数(戻り値)
$ echo $?
- 0正常終了。シグナル送信または一覧表示に成功しました。
- >0対象不存在、権限不足、不正なシグナル指定などで処理できませんでした。
気をつけることと入れ方
危険度は中程度です。PIDを取り違えると別の処理を止めてしまいます。特にroot権限での実行は影響範囲が広くなります。
シェル(bash など)に組み込まれたコマンドです。入れるものはありません。
環境による違い
シェル組み込みのkillと外部コマンドのkillがあり、ジョブ指定の扱いなどで差が出ます。
確かめた環境2026-04-09 に確認
よくある質問
killは必ずプロセスを終了させますか。
いいえ。シグナル送信が本質で、送るシグナルにより意味が変わります。
kill -0は何のために使いますか。
対象を止めずに存在や送達可能性を確認するために使います。
資格試験では
- LinuC レベル1大事1.01.4 プロセスの生成、監視、終了
- LPIC-1大事103.5 Create, monitor and kill processes
- 共通基礎大事Linuxコマンド基礎
kill を最後まで読みました。
Linux コマンド辞典に戻る49 / 144