Linux 提供多種終止進程工具,按 PID、進程名、圖形視窗、信號類型靈活選擇。本文系統整理 kill、killall、pkill、xkill 用法與進階技巧。
kill [信號] PID
# 常用信號
kill -TERM 1234 # 15 (預設),優雅終止,允許清理
kill -KILL 1234 # 9,強制立即終止,核心直接回收資源,不可捕捉
kill -STOP 1234 # 17/19/23,暫停 (SIGSTOP),不終止
kill -CONT 1234 # 18/25,繼續 (SIGCONT)
kill -HUP 1234 # 1,掛起,常用於通知守護程式重讀配置
查找 PID:ps aux | grep name、pgrep -f name、pidof name。
特殊用法:kill -9 -1 終止當前用戶擁有的所有進程 (慎用)。
killall [選項] 進程名
killall -9 firefox # 強制殺死所有 firefox
killall -u user1 httpd # 僅殺死 user1 擁有的 httpd
killall -i gnome-terminal # 互動確認
killall -w httpd # 等待所有進程真正退出
killall -r '^python' # 正則匹配 (需支援)
注意:進程名長度 > 15 字元會被截斷匹配,加 -e 要求精確匹配。
pkill [選項] 模式
pkill -9 firefox
pkill -u user1 -f 'python.*script.py' # 完整命令列匹配
pkill -TERM -P 1234 # 殺死 PID 1234 的所有子進程
pkill -STOP -x exact_name # 精確匹配進程名
pkill -signal 15 pattern # 信號可用名稱或數字
pkill 比 killall 更強大:支援完整命令列匹配 (-f)、父進程 ID (-P)、終端 (-t)、用戶 (-u)、群組 (-g) 等多維度過濾。
xkill
# 滑鼠游標變「骷髏/十字架」,點擊任意視窗 → 該視窗連接的 X 客戶端收到 SIGTERM 並退出
# 右鍵或 Esc 取消
適用於視窗凍結無法正常關閉的圖形程式。僅能終止 X11 客戶端,Wayland 下需 wayland-kill 或 compositor 內建功能。
| 編號 | 名稱 | 動作 | 可捕捉/阻塞 |
|---|---|---|---|
| 1 | SIGHUP | 掛起/重讀配置 | 是 |
| 2 | SIGINT | Ctrl+C 中斷 | 是 |
| 3 | SIGQUIT | Ctrl+\ 退出並核心轉儲 | 是 |
| 9 | SIGKILL | 強制終止 | 否 |
| 15 | SIGTERM | 優雅終止 (預設) | 是 |
| 17/19/23 | SIGSTOP | 暫停 | 否 |
| 18/25 | SIGCONT | 繼續 | 否 |
SIGTERM (15) 給程式釋放資源、持久化狀態的機會。SIGKILL (9)。pkill -f 精準匹配命令列,避免誤殺同名無關進程。SIGTERM 執行清理:trap 'cleanup' TERM。SIGTERM 所有進程 → 等待 → SIGKILL 剩餘 → 同步檔案系統 → 關機。精通進程終止工具,是 Linux 系統管理、開發除錯、自動化腳本編寫的基本功。