簡介
在Linux系統中,ps
命令用于查看當前系統中的進程。ps -aux
是該命令的一個常用選項組合,用于以用戶格式顯示所有進程。
ps -aux
輸出的信息內容及含義:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 193564 3484 ? Ss Jun23 0:09 /sbin/init
root 2 0.0 0.0 0 0 ? S Jun23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jun23 0:00 [ksoftirqd/0]
...
各列的含義
- USER: 運行該進程的用戶。
- PID: 進程ID(Process ID),每個進程的唯一標識符。
- %CPU: CPU使用率,表示該進程的CPU使用情況,以百分比表示。
- %MEM: 內存使用率,表示該進程的內存使用情況,以百分比表示。
- VSZ: 虛擬內存大小(Virtual Size),進程占用的虛擬內存大小,單位為KB。
- RSS: 固定內存大小(Resident Set Size),進程占用的物理內存大小,單位為KB。
- TTY: 進程運行的終端設備號。對于?表示與終端無關。
- STAT: 進程狀態,其中幾個常見的狀態如下:
- S: 睡眠(Sleeping)
- R: 運行(Running)
- Z: 僵尸(Zombie)
- D: 不可中斷的睡眠(通常是I/O操作)
- T: 停止(Stopped)或被跟蹤(Traced)
- START: 進程啟動的時間。
- TIME: 進程運行的時間,CPU時間,以小時、分鐘、秒表示。
- COMMAND: 啟動進程的命令名稱和參數。
ps -aux
命令的輸出可以幫助系統管理員或用戶了解當前系統上運行了哪些進程,以及這些進程的相關信息。通過分析這些信息,可以監控系統的性能,管理資源分配,或者診斷問題。
STAT字段
簡介
在 ps
命令的輸出中,STAT
字段表示進程的狀態。這個字段的字符可以提供關于進程當前狀態的信息。例如,STAT
字段的 Ts
表示進程被停止(Stopped)并且是后臺進程組中的會話領導。
STAT字段中一些常見狀態的含義:
- S: 進程處于睡眠(Sleeping)狀態,等待某個事件或信號。
- R: 進程正在運行(Running)或在運行隊列中等待調度。
- D: 進程處于不可中斷的睡眠(通常是I/O操作)狀態。
- Z: 進程是僵尸(Zombie)進程,即進程已經結束但父進程尚未回收其資源。
- T: 進程被停止(Stopped),通常是收到了一個停止信號,如
Ctrl-Z
。 - <: 高優先級進程。
- N: 低優先級進程。
- L: 有頁面在內存鎖定(Lock)狀態的進程。
- s: 包含子進程。
- l: 多線程(multi-threaded)進程。
- +: 位于前臺進程組的進程。
Ts
表示一個進程被停止了,并且它是后臺進程組中的會話領導。這可能發生在父進程結束,而它的一個或多個子進程仍然在運行的情況下,這些子進程可能會成為會話領導。