ps命令
經常使用參數:
a 顯示全部用戶的全部進程(包括其它用戶);
u 按用戶名和啓動時間的順序來顯示進程;
x 顯示無控制終端的進程;
e 顯示全部進程,包括沒有控制端的進程;
f 用樹形格式來顯示進程;
l 長格式輸出;
w 爲了不詳細參數被截斷,能夠用多個w來讓其顯示完整(好比說ww或者是www);
o 須要查看的選項nginx
舉例說明:多線程
# ps aux | moressh
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19356 680 ? Ss Nov23 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Nov23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Nov23 0:00 [migration/0]
root 30 0.0 0.0 0 0 ? SN Nov23 0:00 [ksmd]
root 31 0.0 0.0 0 0 ? SN Nov23 0:05 [khugepaged]
root 32 0.0 0.0 0 0 ? S Nov23 0:00 [aio/0]
root 278 0.0 0.0 0 0 ? S Nov23 1:58 [jbd2/sda3-8]
root 279 0.0 0.0 0 0 ? S Nov23 0:00 [ext4-dio-unwrit]
root 364 0.0 0.0 10808 208 ? S<s Nov23 0:00 /sbin/udevd -d
root 932 0.0 0.0 93176 484 ? S<sl Nov23 0:03 auditd
root 948 0.0 0.1 249088 1564 ? Sl Nov23 0:02 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
rpc 990 0.0 0.0 18984 320 ? Ss Nov23 0:04 rpcbind
68 1087 0.0 0.1 37932 1288 ? Ssl Nov23 0:16 hald
root 1088 0.0 0.0 20328 340 ? S Nov23 0:00 hald-runner
root 1147 0.0 0.0 66632 392 ? Ss Nov23 0:00 /usr/sbin/sshd
root 1180 0.0 0.0 110320 356 ? Ss Nov23 0:00 /usr/sbin/abrtd
root 1213 0.0 0.0 4064 172 tty1 Ss+ Nov23 0:00 /sbin/mingetty /dev/tty1
--More--
ps命令輸出中包含的信息:ide
USER:進程的屬主;
PID:進程的ID;
PPID:父進程;
%CPU:進程佔用的CPU百分比;
%MEM:佔用內存的百分比;
NI:進程的NICE值,也就是進程的優先值(-20~19之間),數值越大,優先級越底;
VSZ:進程虛擬大小;
RS: 駐留中頁的數量;
TTY: 終端ID。問號表示是無終端的,也就是系統自己。
STAT: 進程狀態
D Uninterruptible sleep (usually IO)
R 正在運行可中在隊列中可過行的;
S 處於休眠狀態;
T 中止或被追蹤;
W 進入內存交換(從內核2.6開始無效);
X 死掉的進程(歷來沒見過);
Z 殭屍進程;
<</strong> 優先級高的進程
N 優先級較低的進程
L 有些頁被鎖進內存;
s 進程的領導者(在它之下有子進程);
l 多線程 (using CLONE_THREAD, like NPTL pthreads do)
+ 位於後臺的進程組;
WCHAN:正在等待的進程資源;
START:啓動進程的時間;
TIME:進程消耗CPU的時間;
COMMAND:啓動進程的命令的名稱和參數;
ps命令的其餘用法:spa
# ps aux | grep httpd ##查看nginx程序的進程線程
root 15665 1 0 Dec06 ? 00:00:00 nginx: master process /soft/openresty/nginx/sbin/nginx
nginx 15676 15665 0 Dec06 ? 00:00:00 nginx: worker process
# ps axo pid,%cpu,%mem,comm | grep nginx ##只查看pid,%cpu,%mem,comm這幾項rest
15665 0.0 0.8 nginx
15676 0.0 0.8 nginx
目前經常使用的就這麼幾個,後面又用的其餘的在添加。隊列
Tips:什麼是殭屍進程。一般,形成殭屍進程的成因是由於該進程應該已經執行完畢,或者是因故應該要終止了, 可是該進程的父進程卻沒法完整的將該進程結束掉,而形成那個進程一直存在內存當中。若是你發如今某個進程的 CMD 後面還接上 時,就表明該進程是殭屍進程。當系統不穩定的時候就容易形成所謂的殭屍進程。也有多是由於程序寫的不完善,或者是使用者的操做習慣不良等等所形成。若是你發現系統中不少殭屍進程時,記得要找出該進程的父進程,而後作個跟蹤排除問題!進程