LinuxMastery
•
•
By asdlkfj
LinuxMastery 08: 進程管理 ps, top, kill
誰佔用了我的 CPU?
Linux 系統中,每一個執行的程式都稱為一個 Process (進程)。當伺服器變慢、卡頓,或者某個服務當掉時,你需要能夠找出兇手並處理它。這就是進程管理的價值。
核心指令詳解
ps (process status)
- 用途:查看當前瞬間的進程狀態。
- 黃金組合:
ps auxa:顯示所有使用者的進程。u:顯示詳細資訊 (如 CPU%, MEM%, 啟動時間)。x:顯示沒有控制終端機的進程 (通常是背景服務)。
- 範例:
# 找出所有與 python 相關的進程 ps aux | grep python
top / htop
- 用途:即時動態顯示系統資源使用狀況 (類似 Windows 的工作管理員)。
- 操作:
- 按
P:依 CPU 使用率排序。 - 按
M:依記憶體使用率排序。 - 按
q:離開。
- 按
- 推薦:如果系統有安裝
htop,請優先使用,它的介面更人性化,支援滑鼠點擊。
kill
- 用途:發送訊號給進程 (通常用來結束進程)。
- 語法:
kill [PID] - 訊號種類:
-15(SIGTERM):預設值。溫柔地請程式結束,讓它有機會存檔清理。-9(SIGKILL):強制處決。程式會瞬間消失,可能會導致資料遺失。
- 範例:
# 強制結束 PID 為 1234 的進程 kill -9 1234
實戰心法
遇到程式卡死,不要急著用 kill -9。先試試 kill -15,給它一點時間。如果那是資料庫進程,強制殺死可能會導致資料庫檔案損毀 (Corruption),後續修復會讓你欲哭無淚。另外,killall nginx 可以依名稱殺死所有相關進程,比一個個查 PID 快得多。