No.080プロセスとジョブ
pgrep
ピーグレップ・プロセス検索
条件に一致するプロセスを検索し、PIDを表示します。名前、ユーザー、完全コマンドラインなどで絞れるため、調査と自動化の両方で便利です。
答えよく使う形
$ sleep 300 &
pgrep sleep
12345
$ pgrep -a sleep
12345 sleep 300
$ pgrep sshd
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中でLPIC-1・59 駅め / 106
どんなコマンド?
特定サービスのPID取得、稼働確認、監視スクリプト、killやreniceの前段処理に使います。
pgrepは、実行中プロセスの中から条件に一致するものを探し、そのPIDを表示するコマンドです。名前一致、ユーザー一致、完全コマンドライン一致、件数表示などができ、ps | grepより意図が明確で誤検出を減らしやすいのが利点です。
実務では、対象プロセスのPID取得、稼働確認、監視スクリプト、後続のkillやreniceへの引き渡しで非常によく役立ちます。
ただし、名前が広過ぎると複数PIDが返り、想定外の対象まで含めることがあります。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ pgrep
使用例と実行結果
行を押すとコピーできます。
12345
12345 sleep 300
まず安全に試す
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