PGREP(1)

名前
pgrep, pkill - 名前や各種属性に基づくプロセスの閲覧とシグナル送信

書式
pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...]
    [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
    [-t term,...] [pattern]

pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
    [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
    [-t term,...] [pattern]

説明
pgrep は現在実行中のプロセスを調べ、選択基準 (selection criteria) にマッチするプロセスのプロセス ID を標準出力にリストする。 全ての基準にマッチしなければならない。例えば

pgrep -u root sshd

は、 sshd という名前で、かつ root が所有するプロセスのみをリストする。一方

pgrep -u root,daemon

は、 root または daemon が所有するプロセスをリストする。

pkill は、標準出力にリストする代わりに、 各プロセスに指定したシグナル を送る (デフォルトでは SIGTERM)。

オプション

-d delimiter
    出力で各プロセスの区切りに用いる文字列を設定する (デフォルトでは改行文字)。(pgrep のみ)

-f  pattern は通常プロセス名にマッチするが、 -f を設定するとコマンドライン全体にマッチの対象となる。

-g pgrp,...
    リストされた ID のプロセスグループのどれかに属するプロセスにのみマッチする。 プロセスグループ 0 は、 pgrep または pkill 自身のプロセスグループとみなされる。

-G gid,...
    実グループ ID がリストのどれかであるプロセスにのみマッチする。

-l  プロセス名をプロセス ID といっしょに表示する。 (pgrep のみ)

-n  マッチしたプロセスの中から最新のもの (最も新しく起動されたもの) だけを選ぶ。

-o  マッチしたプロセスの中から最古のもの (最も昔に起動されたもの) だけを選ぶ。

-P ppid,...
    親プロセスのプロセス ID がリストのどれかであるプロセスにのみマッチする。

-s sid,...
    セッション ID がリストのどれかであるプロセスにのみマッチする。 セッション ID 0 は、 pgrep または pkill 自身のプロセスグループとみなされる。

-t term,...
    制御端末がリストのどれかであるプロセスにのみマッチする。 端末名にはプレフィクス "/dev/" 抜きで指定する。

-u euid,...
    実効ユーザー ID がリストのどれかであるプロセスにのみマッチする。 数値・シンボル値のいずれかが使える。

-U uid,...
    実ユーザー ID がリストのどれかであるプロセスにのみマッチする。 数値・シンボル値のいずれかが使える。

-v  マッチの否定。

-x  名前が (-f を指定した場合はコマンドラインが) pattern に正確に一致するプロセスにのみマッチする。

-signal
    マッチしたプロセスに送るシグナルを定義する。 数値・シンボル値のいずれかが使える。 (pkill のみ)

オペランド (OPERANDS)

pattern
    プロセス名またはコマンドラインにマッチさせる拡張正規表現を指定する。

例
例 1: named デーモンのプロセス ID を表示する。

unix$ pgrep -u root named

例 2: syslog に設定ファイルを再読み込みさせる。

unix$ pkill -HUP syslogd

例 3: 全ての xterm プロセスの詳しい情報を表示する。

unix$ ps -fp $(pgrep -d, -x xterm)

例 4: 全ての netscape の nice 値を上げる。

unix$ renice +4 `pgrep netscape`

終了ステータス

0   ひとつ以上のプロセスが選択基準にマッチした。

1   マッチしたプロセスがなかった。

2   コマンドラインに文法エラーがある。

3   致命的エラー: メモリ不足など。

注意
マッチに用いられるプロセス名は /proc/pid/stat の出力にある 15 文字までに制限されている。完全なコマンドラインである /proc/pid/cmdline にマッチさせるには -f オプションを用いること。

動作中の pgerp と pkill プロセスは、自分自身には決してマッチしない。

バグ
-n, -o, -v は同時に指定できない。 これをしたい場合は私に連絡して欲しい。

消滅したプロセスも報告されてしまう。

関連項目
ps(1), regex(7), signal(7), killall(1), skill(1), kill(1), kill(2)

標準
pkill と pgrep は Sun の Solaris 7 で導入された。 この実装は完全に互換である。

著者
Kjetil Torgrim Homme <kjetilho@ifi.uio.no>

Albert Cahalan <albert@users.sf.net> が現在の procps コレクションのメンテナである。

バグ報告は <procps-feedback@lists.sf.net> まで送って欲しい。