摘自《鳥哥的Linux私房菜》-第十七章、程序管理與 SELinux 初探
PS(1)
將某個(gè)時(shí)間點(diǎn)的程序運(yùn)行情況擷取下來
用法
ps [opt]
選項(xiàng)與參數(shù):
-A :所有的 process 均顯示出來忘晤,與 -e 具有同樣的效用宛蚓;
-a :不與 terminal 有關(guān)的所有 process ;
-u :有效使用者 (effective user) 相關(guān)的 process 设塔;
x :通常與 a 這個(gè)參數(shù)一起使用凄吏,可列出較完整資訊。
輸出格式規(guī)劃:
l :較長闰蛔、較詳細(xì)的將該 PID 的的資訊列出痕钢;
j :工作的格式 (jobs format)
-f :做一個(gè)更為完整的輸出。
常用選項(xiàng)
ps -l : 僅觀察自己的 bash 相關(guān)程序
[scu@croot ~]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 500 3568 3567 0 80 0 - 2861 wait pts/0 00:00:00 bash
0 R 500 3633 3568 0 80 0 - 2816 - pts/0 00:00:00 ps
-
F:代表這個(gè)程序旗標(biāo) (process flags)序六,說明這個(gè)程序的總結(jié)權(quán)限任连,常見號(hào)碼有:
- 若為 4 表示此程序的權(quán)限為 root ;
- 若為 1 則表示此子程序僅進(jìn)行復(fù)制(fork)而沒有實(shí)際運(yùn)行(exec)例诀。
-
S:代表這個(gè)程序的狀態(tài) (STAT)随抠,主要的狀態(tài)有:
- R (Running):該程序正在運(yùn)行中;
- S (Sleep):該程序目前正在睡眠狀態(tài)(idle)繁涂,但可以被喚醒(signal)拱她。
- D :不可被喚醒的睡眠狀態(tài),通常這支程序可能在等待 I/O 的情況(ex>列印)
- T :停止?fàn)顟B(tài)(stop)爆土,可能是在工作控制(背景暫停)或除錯(cuò) (traced) 狀態(tài)椭懊;
- Z (Zombie):僵尸狀態(tài),程序已經(jīng)終止但卻無法被移除至內(nèi)存外步势。
- N (nice)低優(yōu)先級(jí)任務(wù)
- s 進(jìn)程是會(huì)話期首進(jìn)程
- + 進(jìn)程屬于前臺(tái)進(jìn)程組
- | 進(jìn)程是多線程的
- < 高優(yōu)先級(jí)任務(wù)
UID/PID/PPID:代表『此程序被該 UID 所擁有/程序的 PID 號(hào)碼/此程序的父程序 PID 號(hào)碼』
C:代表 CPU 使用率氧猬,單位為百分比;
PRI/NI:Priority/Nice 的縮寫坏瘩,代表此程序被 CPU 所運(yùn)行的優(yōu)先順序盅抚,數(shù)值越小代表該程序越快被 CPU 運(yùn)行。
ADDR/SZ/WCHAN:都與內(nèi)存有關(guān)倔矾,ADDR 是 kernel function妄均,指出該程序在內(nèi)存的哪個(gè)部分,如果是個(gè) running 的程序哪自,一般就會(huì)顯示『 - 』 / SZ 代表此程序用掉多少內(nèi)存 / WCHAN 表示目前程序是否運(yùn)行中丰包,同樣的, 若為 - 表示正在運(yùn)行中壤巷。
TTY: 登陸者的終端機(jī)位置邑彪,若為遠(yuǎn)程登陸則使用動(dòng)態(tài)終端介面 (pts/n);
TIME:使用掉的 CPU 時(shí)間胧华,注意寄症,是此程序?qū)嶋H花費(fèi) CPU 運(yùn)行的時(shí)間宙彪,而不是系統(tǒng)時(shí)間;
CMD:就是 command 的縮寫有巧,造成此程序的觸發(fā)程序之命令為何释漆。
ps aux : 列出目前所有的正在內(nèi)存當(dāng)中的程序
[root@croot scu]# ps aux | grep ^scu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
scu 3567 0.0 0.3 100496 1860 ? S 13:02 0:00 sshd: scu@pts/0
scu 3568 0.0 0.3 11444 1752 pts/0 Ss 13:02 0:00 -bash
- USER:該 process 屬於那個(gè)使用者帳號(hào)的?
- PID :該 process 的程序識(shí)別碼篮迎。
- %CPU:該 process 使用掉的 CPU 資源百分比男图;
- %MEM:該 process 所占用的實(shí)體內(nèi)存百分比;
- VSZ :該 process 使用掉的虛擬內(nèi)存量 (Kbytes)
- RSS :該 process 占用的固定的內(nèi)存量 (Kbytes)
- TTY :該 process 是在那個(gè)終端機(jī)上面運(yùn)行甜橱,若與終端機(jī)無關(guān)則顯示 ?享言,另外, tty1-tty6 是本機(jī)上面的登陸者程序渗鬼,若為 pts/0 等等的,則表示為由網(wǎng)絡(luò)連接進(jìn)主機(jī)的程序荧琼。
- STAT:該程序目前的狀態(tài)譬胎,狀態(tài)顯示與 ps -l 的 S 旗標(biāo)相同 (R/S/T/Z)
- START:該 process 被觸發(fā)啟動(dòng)的時(shí)間;
- TIME :該 process 實(shí)際使用 CPU 運(yùn)行的時(shí)間命锄。
- COMMAND:該程序的實(shí)際命令為何堰乔?
小貼士
僵尸程序: 應(yīng)當(dāng)終止運(yùn)行釋放內(nèi)存,但卻因?yàn)楦赋绦蛭刺幚矶v扎在內(nèi)存中的程序脐恩。