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 のみ)
- 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 <
[email protected]>
Albert Cahalan <
[email protected]> が現在の
procps
コレクションのメンテナである。
バグ報告は <
[email protected]>
まで送って欲しい。