No.080プロセスとジョブ

pgrep

ピーグレップ・プロセス検索

知識レベル 実践安全に試せる一般ユーザーで使える

条件に一致するプロセスを検索し、PIDを表示します。名前、ユーザー、完全コマンドラインなどで絞れるため、調査と自動化の両方で便利です。

答えよく使う形

  1. 一致するPIDをそのまま取得できます
  2. どのsleepなのか文脈まで確認できます
  3. 完全コマンドラインを対象に検索します
visitor@goodly: ~

$ sleep 300 & pgrep sleep

12345

$ pgrep -a sleep

12345 sleep 300

$ pgrep sshd

覚える順番の中でLPIC-1・59 駅め / 106

どんなコマンド?

こんなときに

特定サービスのPID取得、稼働確認、監視スクリプト、killやreniceの前段処理に使います。

pgrepは、実行中プロセスの中から条件に一致するものを探し、そのPIDを表示するコマンドです。名前一致、ユーザー一致、完全コマンドライン一致、件数表示などができ、ps | grepより意図が明確で誤検出を減らしやすいのが利点です。

実務では、対象プロセスのPID取得、稼働確認、監視スクリプト、後続のkillやreniceへの引き渡しで非常によく役立ちます。

ただし、名前が広過ぎると複数PIDが返り、想定外の対象まで含めることがあります。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ pgrep

使用例と実行結果

行を押すとコピーできます。

12345
一致するPIDをそのまま取得できます。
12345 sleep 300
どのsleepなのか文脈まで確認できます。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 2

つまずいたとき

想定より多くのPIDが返ってきた

原因検索条件が広過ぎます。

こうする-x、-u、-fなどで条件を具体化します。

ps | grepと違って何も出ない

原因既定ではプロセス名ベースで一致し、完全コマンドラインまでは見ていない可能性があります。

こうする-fを付けて完全コマンドライン検索を試します。

終わったときの数(戻り値)

$ echo $?

  • 0一致するプロセスが見つかりました。
  • 1一致するプロセスが見つかりませんでした。
  • >1不正な条件指定などで処理できませんでした。

気をつけることと入れ方

気をつけること

危険度は低いですが、条件が広いと複数PIDを返し、後続処理で広く影響することがあります。

環境による違い

Linuxではprocps-ng実装が一般的です。パターン解釈や既定の一致対象は実装差がありうるため、完全一致やユーザー制限を明示すると安全です。

確かめた環境2026-04-09 に確認

よくある質問

ps | grepより何が良いですか。

grep自身を拾ってしまうような誤検出を避けやすく、意図が明確です。

見つからなかった時も正常ですか。

はい。終了コード1で一致なしを表すため、スクリプトではこれを分岐に使えます。

資格試験では

  • LinuC レベル1大事1.01.4 プロセスの生成、監視、終了
  • LPIC-1大事103.5 Create, monitor and kill processes
  • 共通基礎大事Linuxコマンド基礎

pgrep を最後まで読みました。

Linux コマンド辞典に戻る81 / 144

Goodly のメニュー