killall — 依名稱終止所有符合的程序

向所有名稱完全符合的程序傳送訊號(預設終止)。

語法

killall [選項] 程序名稱...

常用選項

選項 說明 範例
-訊號 / -s 訊號 指定訊號(預設 SIGTERM) killall -9 firefox
-i, --interactive 終止每個程序前詢問確認 killall -i nginx
-u 使用者 只終止指定使用者的程序 killall -u alice firefox
-v, --verbose 顯示每個被傳送訊號的程序 killall -v nginx
-w, --wait 等待被終止的程序全部結束 killall -w nginx
-e, --exact 要求程序名稱精確匹配(含路徑) killall -e /usr/bin/vim
-I, --ignore-case 忽略大小寫匹配 killall -I NGINX

使用範例

範例 1:終止所有 nginx 程序

傳送 SIGTERM 給所有名稱為 nginx 的程序,讓它們優雅結束。

$ sudo killall nginx
範例 2:強制終止無回應的程序

使用 SIGKILL 強制立即終止。

$ killall -9 frozen_app
範例 3:互動式確認終止

對每個符合的程序個別確認,避免誤殺重要程序。

$ killall -i python3
Kill python3(1234) ? (y/N) y
Kill python3(5678) ? (y/N) n

常見錯誤與排錯

killall: no process found
原因
沒有找到符合名稱的程序(killall 要求完整名稱匹配)。
解法
先用 pgrep -l 搜尋確認程序名稱,注意不能用子字串,改用 pkill 支援子字串匹配。

延伸閱讀