新聞中心

ps 命令有多種不同的使用方法,這常常給初學(xué)者帶來(lái)困惑。在各種 linux 論壇上,詢(xún)問(wèn) ps 命令語(yǔ)法的帖子屢見(jiàn)不鮮,而出現(xiàn)這樣的情況,還要?dú)w咎于 UNIX 悠久的歷史和龐大的派系。在不同的 Linux 發(fā)行版上,ps 命令的語(yǔ)法各不相同,為此,Linux 采取了一個(gè)折中的方法,即融合各種不同的風(fēng)格,兼顧那些已經(jīng)習(xí)慣了其它系統(tǒng)上使用 ps 命令的用戶(hù)。
ps 命令的基本格式如下:
[root@localhost ~]# ps aux
#查看系統(tǒng)中所有的進(jìn)程,使用 BS 操作系統(tǒng)格式
[root@localhost ~]# ps -le
#查看系統(tǒng)中所有的進(jìn)程,使用 Linux 標(biāo)準(zhǔn)命令格式
選項(xiàng):
- a:顯示一個(gè)終端的所有進(jìn)程,除會(huì)話(huà)引線(xiàn)外;
- u:顯示進(jìn)程的歸屬用戶(hù)及內(nèi)存的使用情況;
- x:顯示沒(méi)有控制終端的進(jìn)程;
- -l:長(zhǎng)格式顯示更加詳細(xì)的信息;
- -e:顯示所有進(jìn)程;
可以看到,ps 命令有些與眾不同,它的部分選項(xiàng)不能加入"-",比如命令"ps aux",其中"aux"是選項(xiàng),但是前面不能帶“-”。
大家如果執(zhí)行 "man ps" 命令,則會(huì)發(fā)現(xiàn) ps 命令的幫助為了適應(yīng)不同的類(lèi) UNIX 系統(tǒng),可用格式非常多,不方便記憶。所以,我建議大家記憶幾個(gè)固定選項(xiàng)即可。比如:
- "ps aux" 可以查看系統(tǒng)中所有的進(jìn)程;
- "ps -le" 可以查看系統(tǒng)中所有的進(jìn)程,而且還能看到進(jìn)程的父進(jìn)程的 PID 和進(jìn)程優(yōu)先級(jí);
- "ps -l" 只能看到當(dāng)前 Shell 產(chǎn)生的進(jìn)程;
有這三個(gè)命令就足夠了,下面分別來(lái)查看。
【例 1】
[root@localhost ~]# ps aux #查看系統(tǒng)中所有的進(jìn)程 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 中羅列出了以上輸出信息中各列的具體含義。
| 表頭 | 含義 |
|---|---|
| USER | 該進(jìn)程是由哪個(gè)用戶(hù)產(chǎn)生的。 |
| PID | 進(jìn)程的 ID。 |
| %CPU | 該進(jìn)程占用 CPU 資源的百分比,占用的百分比越高,進(jìn)程越耗費(fèi)資源。 |
| %MEM | 該進(jìn)程占用物理內(nèi)存的百分比,占用的百分比越高,進(jìn)程越耗費(fèi)資源。 |
| VSZ | 該進(jìn)程占用虛擬內(nèi)存的大小,單位為 KB。 |
| RSS | 該進(jìn)程占用實(shí)際物理內(nèi)存的大小,單位為 KB。 |
| TTY | 該進(jìn)程是在哪個(gè)終端運(yùn)行的。其中,tty1 ~ tty7 代表本地控制臺(tái)終端(可以通過(guò) Alt+F1 ~ F7 快捷鍵切換不同的終端),tty1~tty6 是本地的字符界面終端,tty7 是圖形終端。pts/0 ~ 255 代表虛擬終端,一般是遠(yuǎn)程連接的終端,第一個(gè)遠(yuǎn)程連接占用 pts/0,第二個(gè)遠(yuǎn)程連接占用 pts/1,依次増長(zhǎng)。 |
| STAT | 進(jìn)程狀態(tài)。常見(jiàn)的狀態(tài)有以下幾種:
|
| START | 該進(jìn)程的啟動(dòng)時(shí)間。 |
| TIME | 該進(jìn)程占用 CPU 的運(yùn)算時(shí)間,注意不是系統(tǒng)時(shí)間。 |
| COMMAND | 產(chǎn)生此進(jìn)程的命令名。 |
【例 2】"ps aux"命令可以看到系統(tǒng)中所有的進(jìn)程,"ps -le"命令也能看到系統(tǒng)中所有的進(jìn)程。由于 "-l" 選項(xiàng)的作用,所以 "ps -le" 命令能夠看到更加詳細(xì)的信息,比如父進(jìn)程的 PID、優(yōu)先級(jí)等。但是這兩個(gè)命令的基本作用是一致的,掌握其中一個(gè)就足夠了。
[root@localhost ~]# ps -le F S UID PID PPID C PRI Nl ADDR SZ WCHAN TTY TIME CMD 4 S 0 1 0 0 80 0 - 718 - ? 00:00:02 init 1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd 1 S 0 3 2 0 -40 - - 0 - ? 00:00:00 migration/0 1 S 0 4 2 0 80 0 - 0 - ? 00:00:00 ksoflirqd/0 1 S 0 5 2 0 -40 - - 0 - ? 00:00:00 migration/0 …省略部分輸出…
表 2 羅列出以上輸出信息中各列的含義。
| 表頭 | 含義 |
|---|---|
| F | 進(jìn)程標(biāo)志,說(shuō)明進(jìn)程的權(quán)限,常見(jiàn)的標(biāo)志有兩個(gè):
|
| S | 進(jìn)程狀態(tài)。具體的狀態(tài)和"psaux"命令中的 STAT 狀態(tài)一致; |
| UID | 運(yùn)行此進(jìn)程的用戶(hù)的 ID; |
| PID | 進(jìn)程的 ID; |
| PPID | 父進(jìn)程的 ID; |
| C | 該進(jìn)程的 CPU 使用率,單位是百分比; |
| PRI | 進(jìn)程的優(yōu)先級(jí),數(shù)值越小,該進(jìn)程的優(yōu)先級(jí)越高,越早被 CPU 執(zhí)行; |
| NI | 進(jìn)程的優(yōu)先級(jí),數(shù)值越小,該進(jìn)程越早被執(zhí)行; |
| ADDR | 該進(jìn)程在內(nèi)存的哪個(gè)位置; |
| SZ | 該進(jìn)程占用多大內(nèi)存; |
| WCHAN | 該進(jìn)程是否運(yùn)行。"-"代表正在運(yùn)行; |
| TTY | 該進(jìn)程由哪個(gè)終端產(chǎn)生; |
| TIME | 該進(jìn)程占用 CPU 的運(yùn)算時(shí)間,注意不是系統(tǒng)時(shí)間; |
| CMD | 產(chǎn)生此進(jìn)程的命令名; |
【例 3】如果不想看到所有的進(jìn)程,只想查看一下當(dāng)前登錄產(chǎn)生了哪些進(jìn)程,那只需使用 "ps -l" 命令就足夠了:
[root@localhost ~]# ps -l #查看當(dāng)前登錄產(chǎn)生的進(jìn)程 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 18618 18614 0 80 0 - 1681 - pts/1 00:00:00 bash 4 R 0 18683 18618 4 80 0 - 1619 - pts/1 00:00:00 ps
可以看到,這次從 pts/1 虛擬終端登錄,只產(chǎn)生了兩個(gè)進(jìn)程:一個(gè)是登錄之后生成的 Shell,也就是 bash;另一個(gè)是正在執(zhí)行的 ps 命令。
我們?cè)賮?lái)說(shuō)說(shuō)僵尸進(jìn)程。僵尸進(jìn)程的產(chǎn)生一般是由于進(jìn)程非正常停止或程序編寫(xiě)錯(cuò)誤,導(dǎo)致子進(jìn)程先于父進(jìn)程結(jié)束,而父進(jìn)程又沒(méi)有正確地回收子進(jìn)程,從而造成子進(jìn)程一直存在于內(nèi)存當(dāng)中,這就是僵尸進(jìn)程。
僵尸進(jìn)程會(huì)對(duì)主機(jī)的穩(wěn)定性產(chǎn)生影響,所以,在產(chǎn)生僵尸進(jìn)程后,一定要對(duì)產(chǎn)生僵尸進(jìn)程的軟件進(jìn)行優(yōu)化,避免一直產(chǎn)生僵尸進(jìn)程;對(duì)于已經(jīng)產(chǎn)生的僵尸進(jìn)程,可以在查找出來(lái)之后強(qiáng)制中止。
網(wǎng)頁(yè)名稱(chēng):Linuxps命令詳解:查看正在運(yùn)行的進(jìn)程
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/ccieggc.html


咨詢(xún)
建站咨詢(xún)
