この記事では、Linuxの pgrep
の基本について説明します。 コマンド。
pgrep
は、指定された基準に基づいて実行中のプログラムのプロセスIDを見つけることができるコマンドラインユーティリティです。プロセス名の全部または一部、プロセスを実行しているユーザー、またはその他の属性にすることができます。
pgrep
コマンドはprocps
の一部です (または procps-ng
)パッケージ。ほぼすべてのLinuxディストリビューションにプリインストールされています。
pgrep
の使用方法 コマンド#
pgrep
の構文 コマンドは次のとおりです:
pgrep [OPTIONS] <PATTERN>
一致する
拡張正規表現を使用して指定されます。
オプションなしで呼び出された場合、 pgrep
指定された名前と一致するすべての実行中のプログラムのPIDを表示します。たとえば、SSHサーバーのPIDを見つけるには、次のコマンドを実行します。
pgrep ssh
「ssh」と一致する名前の実行中のプロセスがある場合、それらのPIDが画面に表示されます。一致するものが見つからない場合、出力は空です。
1039
2257
6850
31279
コマンドは0
を返します 少なくとも1つの実行中のプロセスが要求された名前と一致する場合。それ以外の場合、終了コードは 1
です。 。これは、シェルスクリプトを作成するときに役立ちます。
一致したプロセスにシグナルを送信する場合は、 pkill
を使用します 。このコマンドは、 pkill
のラッパーです。 、同じオプションとパターンマッチングを使用します。
pgrep
一致した各プロセスIDを改行に出力します。 -d
オプションを使用すると、別の区切り文字を指定できます。たとえば、スペースを区切り文字として使用する場合は、次のように入力します。
pgrep ssh -d' '
1039 2257 6850 31279
-l </ code> オプションは
pgrep
に指示します プロセス名とそのIDを表示するには:
pgrep ssh -l
pgrep
正規表現を使用して検索操作を実行し、名前に「ssh」を含むすべてのプロセスを一覧表示します。
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
名前が検索パターンとまったく同じであるプロセスのみを照合する場合は、次を使用します。
pgrep '^ssh$' -l
6850 ssh
カレット( ^
)文字列の先頭で文字が一致し、ドル $
最後に。
デフォルトでは、 pgrep
プロセス名とのみ一致します。 -f
の場合 オプションを使用すると、コマンドは完全な引数リストと照合されます。
pgrep -f ssh
-u
を使用します pgrep
に伝えるオプション 特定のユーザーによって実行されているプロセスを表示するには:
pgrep -u root
複数のユーザーを指定するには、名前をコンマで区切ります。
pgrep -u root,mark
オプションと検索パターンを組み合わせることもできます。たとえば、ユーザー「mark」の下で実行され、名前に「gnome」が含まれているすべてのプロセスとその名前を印刷するには、次のように入力します。
pgrep -l -u mark gnome
最も最近(最も古い)または最も最近(最も新しい)開始されたプロセスのみを表示するには、 -n
を使用します (最新の場合)または -o
(最も古い)オプション。
たとえば、ユーザー「マーク」によって開始された最新のプロセスを見つけるには、次のように入力します。
pgrep -lnu mark
上記の例からわかるように、オプションの間にスペースを入れずに、1つのダッシュでオプションを組み合わせることもできます。
一致を逆にするには、つまり、指定された基準に一致しないプロセスのみを表示するには、 -v
を使用します オプション。次のコマンドは、ユーザー「マーク」によって実行されていないすべてのプロセスを出力します。
pgrep -v -u mark
-c
オプションはpgrep
に指示します 一致するプロセスの数のみを出力します。たとえば、ユーザー「マーク」として実行されるプロセスを見つけるには、次のように入力します。
pgrep -c -u mark
結論#
pgrep
コマンドは、さまざまな基準に基づいて実行中のプログラムのPIDを見つけるために使用されます。
pgrep
の詳細については コマンドを実行するには、pgrepのマンページにアクセスするか、 man pgrep
と入力します。 ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。