Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 進程管理 12 大核心命令實戰詳解

編輯:Linux 教學

掌握進程查看、資源監控、優先級調整、信號控制與限額管理命令,是 Linux 運維與開發的基本功。本文系統梳理 12 個高頻命令的核心參數與實戰場景。

1. ps:靜態進程快照

ps aux              # 所有進程,BSD 風格,含 USER、%CPU、%MEM、VSZ、RSS、STAT、START、TIME、COMMAND
ps -ef              # 所有進程,SystemV 風格,含 UID、PID、PPID、C、STIME、TTY、TIME、CMD
ps -ef | grep nginx # 過濾特定進程
ps -Lf PID          # 顯示指定進程的所有線程 (LWP)

2. pstree:進程樹可視化

pstree -p           # 顯示 PID
pstree -u           # 顯示用戶
pstree -a           # 顯示完整命令行參數
pstree 1234         # 以 PID 1234 為根顯示子樹

3. top:動態資源監控

啟動後交互熱鍵:

  • P:按 %CPU 排序(默認)
  • M:按 %MEM 排序
  • 1:切換顯示各 CPU 核心使用率
  • k:輸入 PID 發送信號殺死
  • r:輸入 PID 修改 nice 值
  • q:退出

4. htop:增強版交互監控(需安裝)

  • 彩色條形圖顯示 CPU/MEM/SWAP
  • 鼠標/鍵盤選擇進程,F7/F8 調優先級,F9 發送信號殺死
  • 支援樹狀/線程/用戶過濾視圖

5. nice:啟動時指定靜態優先級

nice -n -5 ./myapp   # 優先級 -5 (較高), 需 root 權限
nice -n 10 ./myapp   # 優先級 10 (較低), 普通用戶可用
# 範圍 -20 (最高) ~ 19 (最低), 默認 0

6. renice:動態調整運行中進程優先級

renice -n -5 -p 1234           # 調整 PID 1234
renice -n 5 -u www-data        # 調整用戶所有進程
renice -n 0 -g developers      # 調整組所有進程
# 普通用戶只能降低優先級 (增大 nice),root 可任意調整

7. kill / killall / pkill:信號控制

kill -TERM 1234        # 優雅終止 (默認 SIGTERM=15)
kill -KILL 1234        # 強制殺死 (SIGKILL=9), 不可捕獲/忽略, 慎用
killall -TERM nginx    # 按進程名殺死所有 nginx
pkill -TERM -u www-data # 按用戶殺死
pkill -f "java.*myapp" # 按完整命令行模式匹配

常用信號:1 HUP(重載配置)、2 INT(Ctrl+C 中斷)、9 KILL(強制殺死)、15 TERM(優雅終止)、18 CONT(繼續)、19 STOP(暫停)、20 TSTP(Ctrl+Z 掛起)。

8. ulimit:Shell 與進程資源限額

ulimit -a            # 顯示所有軟限制
ulimit -Ha           # 顯示硬限制
ulimit -n 65535      # 最大文件描述符 (需 root 或配置 /etc/security/limits.conf)
ulimit -u 1024       # 最大用戶進程數
ulimit -v 2097152    # 最大虛擬內存 (KB)
ulimit -c unlimited  # 允許生成 core dump

持久化配置編輯 /etc/security/limits.conf:

* soft nofile 65535
* hard nofile 65535
* soft nproc 32768
* hard nproc 32768

9. w / who / whoami:登錄用戶與身份

w                    # 當前登錄用戶、負載、空閒、執行命令
who                  # 登錄用戶、終端、登錄時間、遠程 IP
whoami               # 當前有效用戶名
id                   # UID、GID、Groups 詳情

10. pgrep:模式匹配查找 PID

pgrep -u mint ssh    # 用戶 mint 的 ssh 進程 PID
pgrep -f "python.*server" # 完整命令行匹配
pgrep -l nginx       # 顯示 PID 與進程名

11. fg / bg / jobs:作業控制

./long_task &        # 後台啟動 (作業號 [1])
Ctrl+Z               # 暫停前台任務
bg %1                # 將作業 1 放入後台運行
fg %1                # 將作業 1 調回前台
jobs -l              # 列出所有後台作業及 PID
disown %1            # 從作業表移除,關閉終端不受影響

12. ipcs / ipcrm:IPC 設施檢查與清理

ipcs -m              # 共享內存段
ipcs -s              # 信號量陣列
ipcs -q              # 消息隊列
ipcs -p -m           # 顯示創建者/最後操作者 PID
ipcrm -m SHMID       # 刪除共享內存
ipcrm -s SEMID       # 刪除信號量
ipcrm -q MSGID       # 刪除消息隊列

總結建議

  • 日常排查首選 htop + ps aux | grep。
  • 生產環境調優先級務必配合 ulimit 限額,防止單進程耗盡資源。
  • 殺進程優先 SIGTERM 給予清理機會,SIGKILL 為最後手段。
  • 腳本自動化優先使用 pgrep/pkill 避免 PID 竄改風險。
Copyright © Windows教程網 All Rights Reserved