pgrep — 依名稱或屬性搜尋程序並顯示 PID
依名稱搜尋程序並輸出 PID,比 ps | grep 更乾淨準確。
語法
pgrep [選項] 樣式
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-l, --list-name |
同時顯示程序名稱 | pgrep -l nginx |
-a, --list-full |
顯示完整的指令列(含參數) | pgrep -a python |
-u 使用者 |
只搜尋指定使用者的程序 | pgrep -u www-data |
-x |
完整名稱匹配(不是子字串匹配) | pgrep -x bash |
-c, --count |
只顯示符合條件的程序數量 | pgrep -c nginx |
-f, --full |
對完整指令列(含參數)進行匹配 | pgrep -f "python server.py" |
-n, --newest |
只顯示最新啟動的符合程序 | pgrep -n nginx |
-o, --oldest |
只顯示最早啟動的符合程序 | pgrep -o nginx |
使用範例
範例 1:查詢 nginx 的 PID
快速取得所有 nginx 程序的 PID(包含 master 和 worker)。
$ pgrep nginx
1234
1235
範例 2:顯示 PID 和程序名稱
加上 -l 同時顯示名稱,方便確認對應到哪個程序。
$ pgrep -l python
1234 python3
5678 python3
範例 3:判斷程序是否在執行(腳本用)
在腳本中用 pgrep 的回傳碼(0=找到,1=找不到)判斷程序狀態。
$ if pgrep -x nginx > /dev/null; then
echo 'nginx 正在執行'
else
echo 'nginx 未執行'
fi
nginx 正在執行
範例 4:搜尋完整指令列
使用 -f 對完整指令(含啟動參數)進行匹配,精確找到特定的程序實例。
$ pgrep -f "gunicorn myapp:app"
3456