PKILL(1)

名称
pgrep, pkill - 名前によるプロセスの検索、およびシグナル送出

書式
pgrep [-flnvx] [-G gid] [-M core] [-N system] [-P ppid] [-U uid] [-d delim] [-g pgrp] [-s sid] [-t tty] [-u euid] pattern ... pkill [- signal] [-fnvx] [-G gid] [-M core] [-N system] [-P ppid] [-U uid] [-g pgrp] [-s sid] [-t tty] [-u euid] pattern ...

解説
pgrep コマンドは、稼働中のシステム上のプロセステーブルを検索し、 コマンドラインで指定された基準にマッチしたすべてのプロセス ID を表示します。

pkill コマンドは、稼働中のシステム上のプロセステーブルを検索し、 コマンドラインで指定された基準にマッチしたすべてのプロセスへシグナルを送ります。

以下のオプションを利用できます:

-G gid
    コンマ区切りのリスト gid で与えられた実グループ ID を持つプロセスのみにマッチを限定します。

-P ppid
    コンマ区切りのリスト ppid で与えられた親プロセス ID を持つプロセスのみにマッチを限定します。

-M core
    現在稼働中のシステムからではなく、指定したコアから 名前リストに関連した値を抽出します。

-N system
    現在のシステムがブートしたカーネルイメージ (デフォルト) からではなく、 指定されたシステムから名前リストを抽出します。

-U uid
    コンマ区切りのリスト uid で与えられた実ユーザ ID を持つプロセスのみにマッチを限定します。

-d delim
    それぞれのプロセス ID の間に出力される区切り文字を指定します。 デフォルトは改行文字です。 このオプションは、 pgrep コマンドでのみ使用できます。

-f  完全な引数リストとマッチします。 デフォルトでは、プロセス名とマッチします。

-g pgrp
    コンマ区切りのリスト pgrp で与えられたプロセスグループ ID を持つプロセスのみにマッチを限定します。 0 という値は、 pgrep, pkill コマンドが実行されているプロセスグループ ID を意味します。

-l  長い出力を行います。 マッチしたそれぞれのプロセスのプロセス ID の他に、プロセス名も出力します。 -f オプションと組み合わせて使用された場合、マッチしたそれぞれのプロセスの プロセス ID と完全な引数リストを表示します。 このオプションは、 pgrep コマンドでのみ使用できます。

-n  もしプロセスが存在する場合、最も新しく生成されたプロセスにのみマッチします。

-s sid
    コンマ区切りのリスト sid で与えられたセッション ID を持つプロセスのみにマッチを限定します。 0 という値は、 pgrep, pkill コマンドが実行されているセッション ID を意味します。

-t tty
    コンマ区切りのリスト tty で与えられた端末に関連づけられたプロセスのみにマッチを限定します。 端末名は ttyxx という形式でもよいし、短い xx という形式でも構いません。 単一のダッシュ (‘-’) を指定すると、端末に関連づけられていないプロセスに マッチします。

-u euid
    コンマ区切りのリスト euid で与えられた実効ユーザ ID を持つプロセスのみにマッチを限定します。

-v  マッチの条件を反転させます。 つまり、与えられた基準にマッチしないプロセスを出力します。

-x  プロセス名に厳密にマッチさせます。 -f オプションが指定されている場合は、引数リストに厳密にマッチさせます。 デフォルトでは、すべての部分文字列にマッチします。

-signal
    デフォルトの TERM の代わりに送出されるシグナルを指定する 非負の 10 進数、もしくはシグナル名です。 このオプションは、 pkill の最初の引数として指定された時のみ有効です。

pattern オペランドを指定すると、各プロセスのコマンド名または引数リスト丸ごとに 一致させるための正規表現として使用されます。 -f オプションを指定しない場合、 pattern を使いコマンド名との一致を試みます。 しかしながら、現在のところ、 FreeBSD は、各コマンドにつきコマンド名の最初の 19 文字しか保存していません。 コマンド名の最初の 19 文字より後ろとの一致を試みた場合、 黙って一致に失敗します。

実行中の pgrep も pkill も、自分自身やシステムプロセス (カーネルスレッド) を マッチの対象としないことに注意して下さい。

終了ステータス
pgrep と pkill ユーティリティは、終了の際に以下の値のどれかを返します:

0   1 つ以上のプロセスがマッチしました。

1   どのプロセスにもマッチしませんでした。

2   コマンドライン上で、不正なオプションが指定されました。

3   内部的なエラーが発生しました。

関連項目
kill(1), killall(1), ps(1), kill(2), sigaction(2), re_format(7)

歴史
pkill と pgrep ユーティリティは、 NetBSD 1.6 ではじめて登場しました。 これらは、Sun Solaris 7 に登場した同名のユーティリティを参考に作られました。 これらは FreeBSD 5.3 ではじめて登場しました。

作者
Andrew Doran <ad@NetBSD.org>