ps 命令是最常用的監(jiān)控進程的命令,通過此命令可以查看系統(tǒng)中所有運行進程的詳細信息。
ps 命令有多種不同的使用方法,這常常給初學者帶來困惑。在各種 Linux 論壇上,詢問 ps 命令語法的帖子屢見不鮮,而出現(xiàn)這樣的情況,還要歸咎于 UNIX 悠久的歷史和龐大的派系。在不同的 Linux 發(fā)行版上,ps 命令的語法各不相同,為此,Linux 采取了一個折中的方法,即融合各種不同的風格,兼顧那些已經(jīng)習慣了其它系統(tǒng)上使用 ps 命令的用戶。
ps 命令的基本格式如下:
[root@localhost ~]# ps aux
#查看系統(tǒng)中所有的進程,使用 BS 操作系統(tǒng)格式
[root@localhost ~]# ps -le
#查看系統(tǒng)中所有的進程,使用 Linux 標準命令格式
選項:可以看到,ps 命令有些與眾不同,它的部分選項不能加入"-",比如命令"ps aux",其中"aux"是選項,但是前面不能帶“-”。
大家如果執(zhí)行 "man ps" 命令,則會發(fā)現(xiàn) ps 命令的幫助為了適應(yīng)不同的類 UNIX 系統(tǒng),可用格式非常多,不方便記憶。所以,我建議大家記憶幾個固定選項即可。比如:
有這三個命令就足夠了,下面分別來查看。
【例 1】
[root@localhost ~]# ps aux
#查看系統(tǒng)中所有的進程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 2872 1416 ? Ss Jun04 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S Jun04 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jun04 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S Jun04 0:00 [ksoftirqd/0]
…省略部分輸出…
表 1 中羅列出了以上輸出信息中各列的具體含義。
表 1 ps命令輸出信息含義表頭含義
USER
該進程是由哪個用戶產(chǎn)生的。
進程的 ID。
%CPU
該進程占用 CPU 資源的百分比,占用的百分比越高,進程越耗費資源。
%MEM
該進程占用物理內(nèi)存的百分比,占用的百分比越高,進程越耗費資源。
該進程占用虛擬內(nèi)存的大小,單位為 KB。
該進程占用實際物理內(nèi)存的大小,單位為KB。
該進程是在哪個終端運行的。其中,tty1 ~ tty7 代表本地控制臺終端(可以通過 Alt+F1 ~ F7 快捷鍵切換不同的終端),tty1~tty6 是本地的字符界面終端,tty7 是圖形終端。pts/0 ~ 255 代表虛擬終端,一般是遠程連接的終端linux命令,第一個遠程連接占用 pts/0,第二個遠程連接占用 pts/1,依次増長。
STAT
進程狀態(tài)。常見的狀態(tài)有以下幾種:
-D:不可被喚醒的睡眠狀態(tài),通常用于 I/O 情況。
-R:該進程正在運行。
-S:該進程處于睡眠狀態(tài),可被喚醒。
-T:停止狀態(tài),可能是在后臺暫停或進程處于除錯狀態(tài)。
-W:內(nèi)存交互狀態(tài)(從 2.6 內(nèi)核開始無效)。
-X:死掉的進程(應(yīng)該不會出現(xiàn))。
-Z:僵尸進程。進程已經(jīng)中止,但是部分程序還在內(nèi)存當中。
-<:高優(yōu)先級(以下狀態(tài)在 BSD 格式中出現(xiàn))。
-N:低優(yōu)先級。
-L:被鎖入內(nèi)存。
-s:包含子進程。
-l:多線程(小寫 L)。
-+:位于后臺。
START
該進程的啟動時間。
TIME
該進程占用 CPU 的運算時間,注意不是系統(tǒng)時間。
COMMAND