LinuxMastery By asdlkfj

LinuxMastery 08: 進程管理 ps, top, kill

誰佔用了我的 CPU?

Linux 系統中,每一個執行的程式都稱為一個 Process (進程)。當伺服器變慢、卡頓,或者某個服務當掉時,你需要能夠找出兇手並處理它。這就是進程管理的價值。

核心指令詳解

  1. ps (process status)

    • 用途:查看當前瞬間的進程狀態。
    • 黃金組合ps aux
      • a:顯示所有使用者的進程。
      • u:顯示詳細資訊 (如 CPU%, MEM%, 啟動時間)。
      • x:顯示沒有控制終端機的進程 (通常是背景服務)。
    • 範例
      # 找出所有與 python 相關的進程
      ps aux | grep python
      
  2. top / htop

    • 用途:即時動態顯示系統資源使用狀況 (類似 Windows 的工作管理員)。
    • 操作
      • P:依 CPU 使用率排序。
      • M:依記憶體使用率排序。
      • q:離開。
    • 推薦:如果系統有安裝 htop,請優先使用,它的介面更人性化,支援滑鼠點擊。
  3. kill

    • 用途:發送訊號給進程 (通常用來結束進程)。
    • 語法kill [PID]
    • 訊號種類
      • -15 (SIGTERM):預設值。溫柔地請程式結束,讓它有機會存檔清理。
      • -9 (SIGKILL):強制處決。程式會瞬間消失,可能會導致資料遺失。
    • 範例
      # 強制結束 PID 為 1234 的進程
      kill -9 1234
      

實戰心法

遇到程式卡死,不要急著用 kill -9。先試試 kill -15,給它一點時間。如果那是資料庫進程,強制殺死可能會導致資料庫檔案損毀 (Corruption),後續修復會讓你欲哭無淚。另外,killall nginx 可以依名稱殺死所有相關進程,比一個個查 PID 快得多。