kill キル

英語表記kill

日本語表記シグナル送信

正式名称kill

危険度注意

What does it mean?

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

Command Quest

kill を今日の道具にする

プロセスへシグナルを送ります。単純な終了だけでなく、設定再読...

$ kill [-s シグナル | -n シグナル番号 | -シグナル名] PID... kill -l [シグナル番号]
関連用語0
次のコマンド0
FAQ2
参照5

概要

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

基本構文

kill [-s シグナル | -n シグナル番号 | -シグナル名] PID...
kill -l [シグナル番号]

詳細解説

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

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

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

このコマンドを使う場面

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

まず安全に試す方法

1. sleep 300 &
2. echo $!
3. kill -0 $!
4. kill $!
5. wait $! 2>/dev/null

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 自分で起動したsleepのPIDへkillを送り、穏やかに終了させます。

  2. kill -lを実行し、代表的なシグナル名を覚えます。

資格試験との関連

  • LinuC レベル1
    範囲: 1.01.4 プロセスの生成、監視、終了
    根拠: official
    LinuCレベル1では、プロセスの確認、監視、終了の基礎が問われます。
  • LPIC-1
    範囲: 103.5 Create, monitor and kill processes
    根拠: official
    LPIC-1では、プロセスの確認、監視、終了の基礎が問われます。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、killはLinux運用の基礎体力を支える重要なコマンドです。

オプション

  • -TERM
    穏やかな終了要求を送ります。
    kill -TERM 1234
  • -HUP
    再読み込みや切断通知でよく使われるシグナルを送ります。
    kill -HUP 1234
  • -9
    SIGKILLを送り強制終了します。
    kill -9 1234
  • -0
    実際には止めず、送達可能か確認します。
    kill -0 1234
  • -l
    シグナル名一覧を表示します。
    kill -l

実行結果サンプル

  • sleep 300 & echo $! kill -0 $! && echo ok
    12345
    ok
  • sleep 300 & kill $! wait $! 2>/dev/null || echo terminated
    terminated

戻り値コード

  • 0 正常終了。シグナル送信または一覧表示に成功しました。
  • >0 対象不存在、権限不足、不正なシグナル指定などで処理できませんでした。

使用例

  • kill 1234
  • kill -TERM 1234
  • kill -HUP 4321
  • kill -0 9999
  • kill -9 1234

よくあるエラー

  • killしたのにすぐ止まらない
    原因: 既定のTERMは穏やかな終了要求であり、後処理中のことがあります。
    対処: 少し待ち、必要ならログを確認した上で最終手段としてKILLを検討します。
  • kill -9ばかり使ってしまう
    原因: シグナルの役割を分けて理解していません。
    対処: まずTERMを試し、KILLは最後にします。

導入・互換性情報

シェル組み込みのkillと外部コマンドのkillがあり、ジョブ指定の扱いなどで差が出ます。

注意点 / セキュリティリスク

危険度は中程度です。PIDを取り違えると別の処理を止めてしまいます。特にroot権限での実行は影響範囲が広くなります。

FAQ

  • Q. killは必ずプロセスを終了させますか。
    A. いいえ。シグナル送信が本質で、送るシグナルにより意味が変わります。
  • Q. kill -0は何のために使いますか。
    A. 対象を止めずに存在や送達可能性を確認するために使います。

参照リンク

関連記事