pkill ピーキル

英語表記pkill

日本語表記条件一致プロセスへのシグナル送信

正式名称pkill

危険度注意

What does it mean?

プロセス名や属性で対象を絞り、まとめてシグナルを送ります。PIDを個別に調べずに操作できる反面、条件が広いと関係ない処理まで巻き込みます。

Command Quest

pkill を今日の道具にする

プロセス名や属性で対象を絞り、まとめてシグナルを送ります。P...

$ pkill [オプション]... パターン
関連用語0
次のコマンド0
FAQ2
参照3

概要

プロセス名や属性で対象を絞り、まとめてシグナルを送ります。PIDを個別に調べずに操作できる反面、条件が広いと関係ない処理まで巻き込みます。

基本構文

pkill [オプション]... パターン

詳細解説

pkillは、プロセス名、実行ユーザー、親プロセス、端末などの条件に一致するプロセスへシグナルを送るコマンドです。killがPID中心の道具であるのに対し、pkillは「どの条件に一致するものへ送るか」を先に決める道具です。

実務では、同じ名前のワーカープロセスをまとめて終了する、設定再読み込みのためにHUPシグナルを送る、特定ユーザーの暴走処理を整理するといった場面で使います。

便利な反面、条件が曖昧だと意図しないプロセスまで止めてしまいます。まずpgrepで対象を確認し、その後にpkillへ進む運用が安全です。

このコマンドを使う場面

同名プロセスをまとめて扱いたい時、特定ユーザーの処理へまとめてシグナルを送りたい時、再読み込み要求を一括で出したい時に使います。

まず安全に試す方法

1. sleep 300 &
2. sleep 300 &
3. pgrep sleep
4. pkill -x sleep
5. pgrep sleep

3分ミッション

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

  1. 同名のsleepを複数起動し、pgrepで確認後にpkill -xで終了します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.01.4 プロセスの生成、監視、終了
    根拠: official
    LinuCレベル1では、プロセスの選別とシグナル送信が重要です。
  • LPIC-1
    範囲: 103.5 プロセスの生成、監視、終了
    根拠: official
    LPIC-1では、プロセスの選択とシグナル送信の理解が求められます。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、pkillは実運用でも役立つ重要コマンドです。

オプション

  • -x
    完全一致で名前を比較します。
    pkill -x nginx
  • -f
    コマンドライン全体を対象に一致判定します。
    pkill -f "python worker.py"
  • -u ユーザー
    指定ユーザーのプロセスへ絞ります。
    pkill -u appuser python
  • -HUP
    終了ではなく再読み込み要求などのシグナルを送ります。
    pkill -HUP nginx

実行結果サンプル

  • sleep 300 & sleep 300 & pgrep sleep
    12345
    12346
  • pkill -x sleep pgrep sleep
    出力なし

戻り値コード

  • 0 正常終了。処理に成功しました。
  • >0 対象不存在、権限不足、不正な引数などで処理できませんでした。

使用例

  • pkill -x sleep
  • pkill -u appuser -f "python worker.py"
  • pkill -HUP nginx

よくあるエラー

  • 関係ないプロセスまで止まった
    原因: 一致条件が広すぎました。
    対処: まずpgrepで一致対象を確認し、-xや-u、-fを適切に使い分けます。
  • 狙った対象が止まらない
    原因: 名前ではなくコマンドライン全体や別ユーザー条件で動いています。
    対処: pgrep -aで実際の表示名や引数を確認します。

導入・互換性情報

Linuxではprocps-ng系の実装が一般的です。名前一致、完全一致、コマンドライン全体一致などの挙動差を避けるため、-xや-fを明示すると安全です。

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

危険度は中程度です。名前だけで広く一致させると、止めるつもりのない処理まで対象になります。まずpgrepで一致対象を確認してから実行します。

FAQ

  • Q. killとの違いは何ですか。
    A. killはPID中心、pkillは名前や属性条件で対象を選ぶ道具です。
  • Q. まず何を確認すべきですか。
    A. pgrepで何件一致するか、どのPIDが対象になるかを確認してから送信するのが安全です。

参照リンク

関連記事