No.074プロセスとジョブ

kill

キル・シグナル送信

知識レベル 基礎注意一般ユーザーで使えるシェルに組み込み

プロセスへシグナルを送ります。単純な終了だけでなく、設定再読込、割り込み、存在確認などにも使える重要コマンドです。

答えよく使う形

  1. シグナル0で存在確認ができます
  2. 既定のTERMで対象を終了できます
  3. 穏やかな終了要求を送ります

注意危険度は中程度です。

visitor@goodly: ~

$ sleep 300 & echo $! kill -0 $! && echo ok

12345
ok

$ sleep 300 & kill $! wait $! 2>/dev/null || echo terminated

terminated

$ kill 1234

覚える順番の中で30 コマンド・24 駅め / 30LPIC-1・56 駅め / 106

どんなコマンド?

こんなときに

異常プロセスの停止、サービスの再読み込み要求、調査用の存在確認、ジョブ制御と組み合わせた対話操作に使います。

killは、プロセスへシグナルを送るコマンドです。名前から必ず終了させる道具に見えますが、本質はシグナル送信であり、既定では穏やかな終了要求であるSIGTERMを送ります。

実務では、異常プロセスの停止だけでなく、設定再読み込みにHUPを送る、存在確認としてシグナル0を送るといった使い方もあります。

特に重要なのは、いきなりSIGKILLを使わないことです。まずTERMで終了機会を与え、どうしても止まらない時だけKILLを検討します。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ kill

使用例と実行結果

行を押すとコピーできます。

12345
ok
シグナル0で存在確認ができます。
terminated
既定のTERMで対象を終了できます。

まず安全に試す

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

Goodly のメニュー