ps (Unix)
在大多數類Unix操作系統中,ps
程序(「process status」的簡稱)可以顯示當前運行的進程。一個相關的Unix工具top則可以查看運行進程的實時信息。
在Windows PowerShell中,ps
是Get-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
結合(參見pgrep和pkill命令)來查找一個進程的信息,例如它的進程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有很多選項。在支持SUS和POSIX標準的操作系統上,ps常以選項-ef運行,其中「-e」選擇每一個(every)進程,「-f」指定「完整」(full)輸出格式。這些系統上的另一個常見選項是-l,它指定「長」(long)輸出格式。
由於歷史原因,大多數源自BSD的系統無法接受SUS和POSIX的標準選項(例如,「e」或「-e」選項將顯示環境變量)。在這樣的系統中,ps常使用輔助非標準選項aux,其中「a」列出了一個終端上的所有進程,包括其他用戶運行的,「x」列出所有沒有控制終端的進程,「u」添加了一列顯示每個進程的控制用戶。需要注意的是,為了最大的兼容性,使用此語法時「aux」前沒有「-」。此外,在aux之後添加「ww」可以顯示進程的完整信息,包括所有的參數,例如「ps auxww」。
參見
外部連結
- 單一UNIX®規範第7期,由國際開放標準組織發布 – 命令與工具(Commands & Utilities)參考,
- Show all running processes in Linux using ps command(頁面存檔備份,存於網際網路檔案館)
- 單一UNIX®規範第7期,由國際開放標準組織發布 : report a snapshot of the current processes – 參考,
- In Unix, what do the output fields of the ps command mean?(頁面存檔備份,存於網際網路檔案館)