pkill — 依名稱傳送訊號給程序
依程序名稱搜尋並傳送訊號,可一次終止多個同名程序。
語法
pkill [選項] 樣式
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-訊號編號或名稱 |
指定訊號(預設 SIGTERM=15) | pkill -9 firefox |
-f, --full |
對完整指令列(含參數)進行匹配 | pkill -f "python server.py" |
-u 使用者 |
只終止指定使用者的程序 | pkill -u alice firefox |
-x |
完整名稱匹配(精確) | pkill -x bash |
-n, --newest |
只終止最新的匹配程序 | pkill -n python |
-e, --echo |
顯示被傳送訊號的程序名稱 | pkill -e nginx |
使用範例
範例 1:終止所有 nginx 程序
傳送 SIGTERM,讓所有 nginx 程序自行優雅地結束。
$ sudo pkill nginx
範例 2:強制終止特定應用
使用 -9 強制終止(SIGKILL),不給程序機會清理。
$ pkill -9 frozen_app
範例 3:終止特定使用者的程序
讓某個使用者登出(終止其所有 bash 程序)。
$ sudo pkill -u alice bash
範例 4:依完整指令列終止
精確終止使用特定參數啟動的程序,避免誤傷同名程序。
$ pkill -f "gunicorn --bind 0.0.0.0:8000"
常見錯誤與排錯
pkill 找不到程序(回傳值 1)
- 原因
- 沒有符合條件的程序,pkill 回傳碼 1。
- 解法
- 先用 pgrep -a 確認程序名稱是否正確,注意是否需要 -f 選項。