日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linuxps命令詳解:查看正在運(yùn)行的進(jìn)程
ps 命令是最常用的監(jiān)控進(jìn)程的命令,通過(guò)此命令可以查看系統(tǒng)中所有運(yùn)行進(jìn)程的詳細(xì)信息。

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 中羅列出了以上輸出信息中各列的具體含義。

表 1 ps命令輸出信息含義
表頭 含義
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)有以下幾種:

  1. -D:不可被喚醒的睡眠狀態(tài),通常用于 I/O 情況。
  2. -R:該進(jìn)程正在運(yùn)行。
  3. -S:該進(jìn)程處于睡眠狀態(tài),可被喚醒。
  4. -T:停止?fàn)顟B(tài),可能是在后臺(tái)暫停或進(jìn)程處于除錯(cuò)狀態(tài)。
  5. -W:內(nèi)存交互狀態(tài)(從 2.6 內(nèi)核開(kāi)始無(wú)效)。
  6. -X:死掉的進(jìn)程(應(yīng)該不會(huì)出現(xiàn))。
  7. -Z:僵尸進(jìn)程。進(jìn)程已經(jīng)中止,但是部分程序還在內(nèi)存當(dāng)中。
  8. -<:高優(yōu)先級(jí)(以下?tīng)顟B(tài)在 BSD 格式中出現(xiàn))。
  9. -N:低優(yōu)先級(jí)。
  10. -L:被鎖入內(nèi)存。
  11. -s:包含子進(jìn)程。
  12. -l:多線(xiàn)程(小寫(xiě) L)。
  13. -+:位于后臺(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 羅列出以上輸出信息中各列的含義。

表 2 ps -le 命令輸出信息
表頭 含義
F 進(jìn)程標(biāo)志,說(shuō)明進(jìn)程的權(quán)限,常見(jiàn)的標(biāo)志有兩個(gè):

  • 1:進(jìn)程可以被復(fù)制,但是不能被執(zhí)行;
  • 4:進(jìn)程使用超級(jí)用戶(hù)權(quán)限;
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)制中止。


新聞標(biāo)題:Linuxps命令詳解:查看正在運(yùn)行的進(jìn)程
分享鏈接:http://m.5511xx.com/article/ccieggc.html