在 CentOS 系統管理中,終止失控或佔用資源的進程是基本技能。本文系統整理 kill、killall 等命令的用法,幫助你安全釋放系統資源,避免產生殭屍進程。
首先使用 ps -ef 配合 grep 找到進程 ID:
# ps -ef | grep httpd
輸出中的第二列即為 PID,第四列為父進程 ID (PPID)。
優雅地請求進程結束,允許其釋放資源、保存狀態:
# kill -TERM <PID>
等同於 kill <PID>。若進程啟動了子進程,僅殺死父進程會留下孤兒進程,建議先終止子進程。
當標準信號無效時使用,進程無法捕獲或忽略,會導致資源無法正常釋放:
# kill -9 <PID>
警告:執行前務必用 ps -ef 確認無殭屍進程殘留。若殭屍進程被 init (PID 1) 收養,只能重啟系統清除進程表。
讓進程關閉後立即重啟,常用於 Nginx、Apache 等服務熱加載配置:
# kill -HUP <PID>
嘗試終止進程及其子進程,類似用戶註銷:
# kill -l <PID>
不保證 100% 成功,必要時仍需手動清理子進程。
針對同一進程組所有實例,無需逐個查 PID:
# killall httpd
kill -TERM,給進程體面退出機會。kill -9,並事後檢查殭屍進程。systemctl stop <service> 替代直接 kill。