Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 進程管理全景指南:創建、狀態、控制、監控與信號

編輯:Linux 系統常見問題解答

進程基礎概念

  • PID:進程 ID,唯一標識。
  • PPID:父進程 ID。所有進程祖先為 init (PID 1,systemd 系統為 systemd)。
  • fork() + exec():創建子進程標準流程。fork 複製父進程地址空間 (COW);exec 替換為新程序映像。
  • 僵屍進程:子進程退出,父進程未 wait 回收,殘留任務結構體佔用 PID。長期運行程序必須處理 SIGCHLD。

前後台作業控制

操作命令/快捷鍵說明
後台運行cmd &Shell 返回提示符,進程在後台執行
暫停前台進程Ctrl+Z發送 SIGTSTP,進程停止 (T 狀態)
查看作業jobs -l顯示作業號、PID、狀態 (+ 當前, - 次當前)
調至前台fg %nn 為作業號,省略則操作 + 標記作業
後台繼續運行bg %n發送 SIGCONT,使停止作業在後台運行
脫離終端運行nohup cmd &忽略 SIGHUP,關閉終端進程不終止
終止作業kill %n發送信號 (默認 SIGTERM),kill -9 %n 強殺

進程狀態碼 (ps/top STAT 欄)

R  Running/Runnable   運行/就緒
S  Sleeping           可中斷睡眠 (等待事件)
D  Disk Sleep         不可中斷睡眠 (通常為 I/O)
T  Stopped            作業控制停止 / 被跟蹤
Z  Zombie             僵屍
<  High Priority      高優先級 (nice < 0)
N  Low Priority       低優先級 (nice > 0)
L  Locked Pages       鎖定內存頁
s  Session Leader     會話首進程
l  Multi-threaded     多線程
+  Foreground Group   前台進程組

核心監控命令

ps - 靜態快照


# 所有進程完整信息 (BSD 風格)
ps aux
# 所有進程完整信息 (POSIX 風格)
ps -ef
# 只看當前 Shell 及子進程
ps -l
# 自定義格式
ps -eo pid,ppid,user,pri,ni,%cpu,%mem,vsz,rss,stat,start,time,cmd --sort=-%cpu

top - 動態交互


top -d 2 -p 1234,5678   # 每 2 秒刷新,監控指定 PID
# 交互鍵:
# P: CPU 排序 | M: 內存排序 | T: TIME+ 排序 | N: PID 排序
# k: 發送信號 | r: 修改 nice | q: 退出 | 1: 切換 CPU 核心顯示

pstree - 進程樹


pstree -p -u -A   # 顯示 PID、用戶、ASCII 連接線

kill / killall - 信號發送


kill -l                  # 列出所有信號
kill -15 PID             # SIGTERM 優雅終止
kill -9 PID              # SIGKILL 強制殺死 (不可捕獲)
kill -1 PID              # SIGHUP 重讀配置 (守護進程常用)
killall -i -9 nginx      # 按名稱殺死,-i 交互確認

常用信號表

信號值動作典型用途
SIGHUP1終止終端掛起 / 守護進程重讀配置
SIGINT2終止Ctrl+C 中斷前台進程
SIGQUIT3棄核終止Ctrl+\ 產生 core dump
SIGKILL9終止強制殺死,不可捕獲/忽略
SIGTERM15終止標準優雅關閉信號
SIGCHLD17忽略子進程狀態變化,父進程捕獲回收僵屍
SIGSTOP19停止不可捕獲,暫停進程
SIGCONT18繼續恢復 SIGSTOP/SIGTSTP 暫停的進程
SIGTSTP20停止Ctrl+Z 終端暫停

優先級與 Nice 值

  • PR (Priority):內核調度優先級,數值越小優先級越高。
  • NI (Nice):用戶空間可調整範圍 -20 ~ +19,默認 0。nice -n -5 cmd (高優先級需 root),renice -5 -p PID 調整運行中進程。

/proc 文件系統進程接口


/proc/PID/
├── cmdline      # 啟動命令行 (以 \0 分隔)
├── environ      # 環境變量
├── fd/          # 文件描述符符號鏈接
├── maps         # 內存映射區域
├── status       # 狀態信息 (Name, State, Pid, PPid, Uid, Gid, VmSize, VmRSS...)
├── stat         # 精簡狀態 (供 ps/top 解析)
├── exe          # 可執行文件符號鏈接
├── cwd          # 當前工作目錄符號鏈接
└── root         # 根目錄符號鏈接 (chroot 影響)
Copyright © Windows教程網 All Rights Reserved