ps:要對(duì)進(jìn)程進(jìn)行監(jiān)測(cè)和控制,首先必須要了解當(dāng)前進(jìn)程的情況,也就是需要查看當(dāng)前進(jìn)程,而ps命令就是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令.使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵尸、哪些進(jìn)程占用了過多的資源等等.總之大部分信息都是可以通過執(zhí)行該命令得到的.
ps命令最常用的還是用于監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信的,所以如果需要檢測(cè)其情況,便可以使用ps命令了.
注意:ps是顯示瞬間進(jìn)程的狀態(tài),并不動(dòng)態(tài)連續(xù);如果想對(duì)進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)控應(yīng)該用top命令。
通過man%20ps可以獲得ps的詳細(xì)參數(shù)用法。下面可以通過示例看看效果:
[root@lsbhjshyn%20~]#%20ps%20aux
[root@%20lsbhjshyn%20~]#%20ps%20-lA
[root@%20lsbhjshyn%20~]#%20ps%20axjf
參數(shù):
-A%20:所有的進(jìn)程均顯示出來,與%20-e%20具有同樣的效用;
-a%20:%20顯示現(xiàn)行終端機(jī)下的所有進(jìn)程,包括其他用戶的進(jìn)程;
-u :以用戶為主的進(jìn)程狀態(tài) ;
x :通常與 a 這個(gè)參數(shù)一起使用,可列出較完整信息。
輸出格式規(guī)劃:
l :較長、較詳細(xì)的將該 PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一個(gè)更為完整的輸出。
特別說明:
由于 ps 能夠支持的系統(tǒng)類型相當(dāng)?shù)亩,所以他的參?shù)多的離譜!
而且有沒有加上 - 差很多!詳細(xì)的用法應(yīng)該要參考 man ps 喔!
例1:將目前屬于您自己這次登入的 PID 與相關(guān)信息列示出來
各相關(guān)信息的意義為:
F 代表這個(gè)程序的旗標(biāo) (flag), 4 代表使用者為 superuser;
S 代表這個(gè)程序的狀態(tài) (STAT);
UID 代表執(zhí)行者身份
PID 進(jìn)程的ID號(hào)!底下的 PPID 則父進(jìn)程的ID;
C CPU 使用的資源百分比
PRI指進(jìn)程的執(zhí)行優(yōu)先權(quán)(Priority的簡(jiǎn)寫),其值越小越早被執(zhí)行;
NI 這個(gè)進(jìn)程的nice值,其表示進(jìn)程可被執(zhí)行的優(yōu)先級(jí)的修正數(shù)值。
ADDR 這個(gè)是內(nèi)核函數(shù),指出該程序在內(nèi)存的那個(gè)部分。如果是個(gè)執(zhí)行 的程序,一般就是『 - 』
SZ 使用掉的內(nèi)存大。
WCHAN 目前這個(gè)程序是否正在運(yùn)作當(dāng)中,若為 - 表示正在運(yùn)作;
TTY 登入者的終端機(jī)位置啰;
TIME 使用掉的 CPU 時(shí)間。
CMD 所下達(dá)的指令名稱
例2:列出目前所有的正在內(nèi)存當(dāng)中的程序
?%20USER:該進(jìn)程屬于那個(gè)使用者賬號(hào)的?
?%20PID%20:該進(jìn)程的進(jìn)程ID號(hào)。
?%20%CPU:該進(jìn)程使用掉的%20CPU%20資源百分比;
?%20%MEM:該進(jìn)程所占用的物理內(nèi)存百分比;
?%20VSZ%20:該進(jìn)程使用掉的虛擬內(nèi)存量%20(Kbytes)
?%20RSS%20:該進(jìn)程占用的固定的內(nèi)存量%20(Kbytes)
? TTY :該進(jìn)程是在那個(gè)終端機(jī)上面運(yùn)作,若與終端機(jī)無關(guān),則顯示 ?,另外,tty1-tty6 是本機(jī)上面的登入者程序linux命令大全,若為 pts/0 等等的linux命令大全,則表示為由網(wǎng)絡(luò)連接進(jìn)主機(jī)的程序。
? STAT:該程序目前的狀態(tài),主要的狀態(tài)有:
R :該程序目前正在運(yùn)作,或者是可被運(yùn)作;
S :該程序目前正在睡眠當(dāng)中 (可說是 idle 狀態(tài)啦!),但可被某些訊號(hào)(signal) 喚醒。
T :該程序目前正在偵測(cè)或者是停止了;
Z :該程序應(yīng)該已經(jīng)終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態(tài)
? START:該進(jìn)程被觸發(fā)啟動(dòng)的時(shí)間;
? TIME :該進(jìn)程實(shí)際使用 CPU 運(yùn)作的時(shí)間。
? COMMAND:該程序的實(shí)際指令為什么?
例3:以例一的顯示內(nèi)容,顯示出所有的程序
例4:列出類似程序樹的程序顯示
例5:找出與 cron 與 syslog 這兩個(gè)服務(wù)有關(guān)的 PID 號(hào)碼