萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

CentOS 進程管理:使用 kill 命令終止進程的完整指南

前言

在 CentOS 系統管理中,終止失控或佔用資源的進程是基本技能。本文系統整理 kill、killall 等命令的用法,幫助你安全釋放系統資源,避免產生殭屍進程。

1. 確定目標進程 PID

首先使用 ps -ef 配合 grep 找到進程 ID:

# ps -ef | grep httpd

輸出中的第二列即為 PID,第四列為父進程 ID (PPID)。

2. 標準終止信號 (SIGTERM, 默認)

優雅地請求進程結束,允許其釋放資源、保存狀態:

# kill -TERM <PID>

等同於 kill <PID>。若進程啟動了子進程,僅殺死父進程會留下孤兒進程,建議先終止子進程。

3. 強制終止 (SIGKILL, -9)

當標準信號無效時使用,進程無法捕獲或忽略,會導致資源無法正常釋放:

# kill -9 <PID>

警告:執行前務必用 ps -ef 確認無殭屍進程殘留。若殭屍進程被 init (PID 1) 收養,只能重啟系統清除進程表。

4. 重新加載配置 (SIGHUP, -HUP)

讓進程關閉後立即重啟,常用於 Nginx、Apache 等服務熱加載配置:

# kill -HUP <PID>

5. 模擬用戶登出 ( -l 選項)

嘗試終止進程及其子進程,類似用戶註銷:

# kill -l <PID>

不保證 100% 成功,必要時仍需手動清理子進程。

6. 按名稱批量終止:killall

針對同一進程組所有實例,無需逐個查 PID:

# killall httpd

7. 最佳實踐建議

  • 優先嘗試 kill -TERM,給進程體面退出機會。
  • 確認進程樹關係,先殺子進程再殺父進程。
  • 僅在進程無響應時使用 kill -9,並事後檢查殭屍進程。
  • 服務管理推薦使用 systemctl stop <service> 替代直接 kill。
copyright © 萬盛學電腦網 all rights reserved