1.“ps --help”
1.1.簡單選擇
1.1.1.顯示所有程序
[root@tri work]# ps -e
[root@tri work]# ps -e | wc -l
73
[work@tri ~]$ ps -e | wc -l
73
1.1.2.終端下、排除會話頭
[root@tri work]# ps -a
PID TTY TIME CMD
5729 pts/0 00:00:00 su
5732 pts/0 00:00:00 bash
5823 pts/0 00:00:00 ps
1.1.3.終端下,包含其他使用者
[root@tri work]# ps a
PID TTY STAT TIME COMMAND
461 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux
5566 pts/0 Ss 0:00 -bash
5622 pts/1 Ss+ 0:00 -bash
5729 pts/0 S 0:00 su
5732 pts/0 S 0:00 bash
5824 pts/0 R+ 0:00 ps a
1.1.4.所有程序,排除會話頭
[root@tri work]# ps -d
1.1.5.正在運作的程序
[work@oxo bean]$ ps r
PID TTY STAT TIME COMMAND
30090 pts/1 D+ 0:35 md5sum tmp/app47.tar
30093 pts/0 R+ 0:00 ps r
1.2.按清單選擇
1.2.1.按照指令名稱
[root@tri work]# ps -C httpd
[root@tri work]# ps -C vsftpd
1.2.2.按照“組ID”、“組名”
[root@tri work]# ps -G apache
[root@tri work]# ps -G 48
1.2.3.按照程序号顯示
顯示程序5202的資訊
[root@tri work]# ps -p 5202
顯示5202的子程序資訊
[root@tri work]# ps --ppid 5202
1.2.4.顯示某個終端的程序
[work@tri ~]$ ps -t pts/0
PID TTY TIME CMD
4967 pts/0 00:00:00 bash
5013 pts/0 00:00:00 su
5014 pts/0 00:00:00 bash
5304 pts/0 00:00:11 java
顯示沒有終端資訊的程序
[work@tri ~]$ ps -t ?
1.2.5.按照“使用者id”、“使用者名”
[work@tri ~]$ ps -u work
PID TTY TIME CMD
5506 ? 00:00:11 java
5565 ? 00:00:00 sshd
5566 pts/0 00:00:00 bash
5598 pts/0 00:00:00 ps
[work@tri ~]$ ps -U work
PID TTY TIME CMD
5506 ? 00:00:11 java
5565 ? 00:00:00 sshd
5566 pts/0 00:00:00 bash
5599 pts/0 00:00:00 ps
[work@tri ~]$ ps -U 1000
PID TTY TIME CMD
5506 ? 00:00:12 java
5565 ? 00:00:00 sshd
5566 pts/0 00:00:00 bash
5600 pts/0 00:00:00 ps
1.3.輸出
1.3.1.固定格式輸出
[root@tri work]# ps -C httpd -F
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 5913 1 0 56553 5164 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5914 5913 0 56553 3008 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5915 5913 0 56553 3008 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5916 5913 0 56553 3008 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5917 5913 0 56553 3008 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5918 5913 0 56553 3008 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
[root@tri work]# ps -C httpd -f
UID PID PPID C STIME TTY TIME CMD
root 5913 1 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5914 5913 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5915 5913 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5916 5913 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5917 5913 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 5918 5913 0 20:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
[root@tri work]# ps -C httpd -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 5913 1 0 80 0 - 56553 poll_s ? 00:00:00 httpd
5 S 48 5914 5913 0 80 0 - 56553 inet_c ? 00:00:00 httpd
5 S 48 5915 5913 0 80 0 - 56553 inet_c ? 00:00:00 httpd
5 S 48 5916 5913 0 80 0 - 56553 inet_c ? 00:00:00 httpd
5 S 48 5917 5913 0 80 0 - 56553 inet_c ? 00:00:00 httpd
5 S 48 5918 5913 0 80 0 - 56553 inet_c ? 00:00:00 httpd
[root@tri work]# ps -C httpd s
UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND
0 5913 0000000000000000 0000000000000000 0000000001001000 00000001880046eb Ss ? 0:00 /usr/sbin/httpd -DFOREGROUND
48 5914 0000000000000000 0000000000000000 0000000001001002 00000001880046e9 S ? 0:00 /usr/sbin/httpd -DFOREGROUND
48 5915 0000000000000000 0000000000000000 0000000001001002 00000001880046e9 S ? 0:00 /usr/sbin/httpd -DFOREGROUND
48 5916 0000000000000000 0000000000000000 0000000001001002 00000001880046e9 S ? 0:00 /usr/sbin/httpd -DFOREGROUND
48 5917 0000000000000000 0000000000000000 0000000001001002 00000001880046e9 S ? 0:00 /usr/sbin/httpd -DFOREGROUND
48 5918 0000000000000000 0000000000000000 0000000001001002 00000001880046e9 S ? 0:00 /usr/sbin/httpd -DFOREGROUND
[root@tri work]# ps -C httpd u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 5913 0.0 0.5 226212 5164 ? Ss 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
apache 5914 0.0 0.2 226212 3008 ? S 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
apache 5915 0.0 0.2 226212 3008 ? S 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
apache 5916 0.0 0.2 226212 3008 ? S 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
apache 5917 0.0 0.2 226212 3008 ? S 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
apache 5918 0.0 0.3 226348 3252 ? S 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
[root@tri work]# ps -C httpd v
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
5913 ? Ss 0:00 0 480 225731 5164 0.5 /usr/sbin/httpd -DFOREGROUND
5914 ? S 0:00 0 480 225731 3008 0.2 /usr/sbin/httpd -DFOREGROUND
5915 ? S 0:00 0 480 225731 3008 0.2 /usr/sbin/httpd -DFOREGROUND
5916 ? S 0:00 0 480 225731 3008 0.2 /usr/sbin/httpd -DFOREGROUND
5917 ? S 0:00 0 480 225731 3008 0.2 /usr/sbin/httpd -DFOREGROUND
5918 ? S 0:00 0 480 225867 3252 0.3 /usr/sbin/httpd -DFOREGROUND
[root@tri work]# ps -C httpd X
PID STACKP ESP EIP TMOUT ALARM STAT TTY TIME COMMAND
5913 4d562100 4d561d58 81b45b83 - - Ss ? 0:00 /usr/sbin/httpd -DFOREGROUND
5914 4d562100 4d561b48 81b4fb77 - - S ? 0:00 /usr/sbin/httpd -DFOREGROUND
5915 4d562100 4d561b48 81b4fb77 - - S ? 0:00 /usr/sbin/httpd -DFOREGROUND
5916 4d562100 4d561b48 81b4fb77 - - S ? 0:00 /usr/sbin/httpd -DFOREGROUND
5917 4d562100 4d561b48 81b4fb77 - - S ? 0:00 /usr/sbin/httpd -DFOREGROUND
5918 4d562100 4d561b48 81b4fb77 - - S ? 0:00 /usr/sbin/httpd -DFOREGROUND
1.3.2.自定義格式輸出
使用“o”定義輸出格式
[root@tri work]# ps -C httpd -o user,group,stime
USER GROUP STIME
root root 20:46
apache apache 20:46
apache apache 20:46
apache apache 20:46
apache apache 20:46
apache apache 20:46
2.常用操作
簡單程序選擇
-e 顯示所有程序
ax 顯示所有程序(BSD模式)
清單程序選擇
-C 顯示指定指令的程序
eg: ps -C bash -o pid,comm,%cpu,%mem
eg: ps -C java -o pid,comm,%cpu,%mem
-G 顯示使用者組的程序
eg: ps -G bea -o pid,%cpu,%mem,time,cmd,comm
-U 顯示使用者的程序
eg: ps -U weblogic -o pid,%cpu,%mem,stat
-p “pid”清單指定的程序
-s 會話清單指定的程序
--ppid 選擇子程序資訊
eg: ps --ppid 1 -o pid,ppid,comm,cmd
-123 會話id
123 程序id
-t 檢視某個終端的程序
找出運作java的程序号
[root@iZ28lyaw0o0Z ~]# ps -C java -o pid=
913
6988
輸出格式控制
-f
-j
e 在指令後顯示其環境變量
ww 不限制寬度輸出
程序狀态代碼
D 不可中斷睡眠
R 運作
S 等待終止信号的睡眠
Z 僵屍程序
T 停止的
BSD資訊
< 高特權
N 低特權
L
s 會話頭
l 多線程
+ 前台程序組中的程序
[ ] 核心線程
[root@iZ28fpqf1fgZ ~]# tar -cf 131-home-d.tar /home/ &
[root@iZ28fpqf1fgZ ~]# ps -p 4668 -o pid,stat,%mem,%cpu,cmd
PID STAT %MEM %CPU CMD
4668 D 0.0 5.6 tar -cf 131-home-d.tar /home/
[root@iZ28fpqf1fgZ ~]# kill -9 4668
[root@iZ28fpqf1fgZ ~]# ps -p 4668 -o pid,stat,%mem,%cpu,cmd
PID STAT %MEM %CPU CMD
[1]+ Killed tar -cf 131-home-d.tar /home/
[root@iZ28fpqf1fgZ ~]# ps -p 4668 -o pid,stat,%mem,%cpu,cmd
PID STAT %MEM %CPU CMD
其他資訊
L 顯示可以指定的格式列名
eg: ps L
eg: ps -e -o uid,user,pid,cpuid,cputime,start_time,start,cmd
找出僵死程序
# ps -e -o pid,stat | grep -i n
282 SN
283 SN
BSD模式
# ps ax o pid,stat
顯示結果
%CPU 使用掉處理器時間的百分比
%MEM 使用了多少實體記憶體的百分比
VSZ 程序請求虛拟記憶體使用的數量(KB)
RSS (KB)
SIZE 記憶體占用大小(KB)
TIME 使用的cpu時間總量(自啟動)
STIME 程序的啟動時間(年)
START 程序的啟動時間(月日)
STAT 程序狀态