在大多數類Unix作業系統中,ps程式(「process status」的簡稱)可以顯示當前執行的行程。一個相關的Unix工具top則可以檢視執行行程的即時資訊。

執行ps -u後的截圖

Windows PowerShell中,psGet-Process cmdlet的預定義命令別名,它和Unix中的ps本質上是相同的。

範例

輸出範例:

# ps
  PID TTY          TIME CMD
 7431 pts/0    00:00:00 su
 7434 pts/0    00:00:00 bash
18585 pts/0    00:00:00 ps

用戶還可以利用ps命令和grep結合(參見pgreppkill命令)來尋找一個行程的資訊,例如它的行程ID:

$ # 查找`firefox-bin`的PID为2701
$ ps -A | grep firefox-bin
2701 ?        22:16:04 firefox-bin

或直接使用pgrep

$ pgrep -l firefox-bin
2701 firefox-bin

檢視以root用戶執行的行程:

# ps -U root -u
USER   PID  %CPU %MEM    VSZ   RSS TT  STAT STARTED        TIME COMMAND
root     1   0.0  0.0   9436   128  -  ILs  Sun00AM     0:00.12 /sbin/init --

分解

列名 內容
%CPU 行程正在使用多少個CPU
%MEM 行程正在使用多少主記憶體
ADDR 行程的主記憶體地址
C或CP CPU使用率和排程資訊
COMMAND* 行程名,包括參數(如果有的話)
NI nice值
F 標誌
PID 行程ID
PPID 父行程ID
PRI 行程優先級
RSS 真實主記憶體用量
S or STAT 行程狀態碼
START or STIME 行程啟動時間
SZ 虛擬記憶體用量
TIME 總CPU用量
TT或TTY 與行程相關的終端
UID或USER 行程所有者的用戶名
WCHAN 行程所等待事件的主記憶體地址

* = 通常被简写

選項

ps有很多選項。在支援SUSPOSIX標準的作業系統上,ps常以選項-ef執行,其中「-e」選擇每一個(every)行程,「-f」指定「完整」(full)輸出格式。這些系統上的另一個常見選項是-l,它指定「長」(long)輸出格式。

由於歷史原因,大多數源自BSD的系統無法接受SUS和POSIX的標準選項(例如,「e」或「-e」選項將顯示環境變數)。在這樣的系統中,ps常使用輔助非標準選項aux,其中「a」列出了一個終端上的所有行程,包括其他用戶執行的,「x」列出所有沒有控制終端的行程,「u」添加了一列顯示每個行程的控制用戶。需要注意的是,為了最大的相容性,使用此語法時「aux」前沒有「-」。此外,在aux之後添加「ww」可以顯示行程的完整資訊,包括所有的參數,例如「ps auxww」。

參見

外部連結