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 選項。

延伸閱讀