ps命令

# ps命令
選項:
a:顯示現行終端機下的全部進程,包括其餘用戶的進程;
u:顯示進程擁有者、狀態、資源佔用等的詳細信息(注意有「-」和無「-」的區別);
x:顯示沒有控制終端的進程。一般與 a 這個參數一塊兒使用,可列出較完整信息;
-e:顯示全部進程;
-f:完整輸出顯示進程之間的父子關係;
-l:較長、較詳細的將該 PID 的的信息列出;
-o:自定義顯示的字段;
注:ps -aux 不一樣於 ps aux
-----------------------------------------
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:29 ? 00:00:00 /sbin/init
root 13 2 0 08:29 ? 00:00:00 [sync_supers]
PPID:父進程PID
------------------------------------------
# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19356 968 ? Ss 08:29 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:29 0:00 [kthreadd]
說明:
USER: 運行進程的用戶
PID: 進程ID
%CPU: CPU佔用率
%MEM: 內存佔用率
VSZ: 佔用虛擬內存
RSS: 佔用實際內存 駐留內存
TTY: 進程運行的終端
STAT: 進程狀態 man ps (/STATE)
R 運行
S 可中斷睡眠 Sleep
D 不可中斷睡眠
T 中止的進程
Z 殭屍進程
X 死掉的進程
Ss s進程的領導者,父進程
S< <優先級較高的進程
SN N優先級較低的進程
R+ +表示
前臺的進程組
Sl 以線程的方式運行
START: 進程的啓動時間
TIME: 進程佔用CPU的總時間
COMMAND: 進程文件,進程名
------------------------------------------------------
查看當前系統進程的uid,pid,stat,pri, 以uid號排序:
ps -eopid,stat,pri,uid --sort uid
ps axo user,pid,rss,cmd | head ----自定義顯示的字段:user,pid,rss,cmd
經過cpu/mem的使用來過濾排序:
ps aux --sort -%cpu | more ----more:分頁顯示,按cpu使用排序
ps aux --sort -pcpu | more ----按cpu使用排序
ps aux --sort -pmem | more ----按mem使用排序
ps -aux | sort -k4nr | head -10
root 1244 0.0 3.1 286056 15460 ? Ssl 20:17 0:02 /usr/bin/kube-proxy --logtostderr=true --v=0 --master=http://192.168.1.50:8080
root 1233 0.0 2.5 553052 12564 ? Ssl 20:17 0:01 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 3715 0.0 2.5 457180 12192 ? Ss 20:46 0:00 /usr/sbin/httpd -DFOREGROUND
root 4987 0.2 2.5 219116 12300 ? Ssl 21:46 0:00 /usr/bin/flanneld -etcd-endpoints=http://192.168.1.50:2379 -etcd-prefix=/atomic.io/network
root 929 0.0 1.9 285296 9384 ? Ssl 20:16 0:00 /usr/sbin/rsyslogd -n
root 1248 0.0 1.7 558076 8276 ? Ssl 20:17 0:00 /usr/sbin/libvirtd
apache 4628 0.0 1.6 459264 7780 ? S 21:26 0:00 /usr/sbin/httpd -DFOREGROUND
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
sort -k4nr中(k表明從根據哪個關鍵詞排序,後面的數字4表示按照第四列排序;n指代numberic sort,根據其數值排序;r指代reverse,這裏是指反向比較結果,輸出時默認從小到大,反向後從大到小。)。本例中,能夠看到%MEM在第4個位置,根據%MEM的數值進行由大到小的排序。-k3表示按照cpu佔用率排序。
經過進程名和PID:
ps -C java
---> PID TTY TIME CMD
ps -f -C java
---> UID PID PPID C STIME TTY TIME CMD
root 1247 1 0 08:58 ? 00:00:00 /usr/sbin/sshd -D
root 27688 1247 0 10:07 ? 00:00:04 sshd: root@pts/0
根據線程來過濾進程:想知道特定進程的線程:
ps -L pid
ps -p 3785 -L
ps -eLf ---查看線程
顯示安全信息,若是想要查看如今有誰登入了你的服務器:
ps -eo user,pid,args
格式化輸出某用戶(真實的或有效的UID)建立的進程: 系統管理員想要查看由pag用戶運行的進程和這個進程的其餘相關信息時: ps -U root -u pag u    -U:參數按真實用戶ID(RUID)篩選進程,它會從用戶列表中選擇真實用戶名或ID。真實用戶即實際建立該進程的用戶;    -u:參數用來篩選有效用戶ID(EUID)    最後的u參數用來決定以針對用戶的格式輸出,由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME 和 COMMAND這幾   列組成。
ps實時監控進程狀態:與watch命令結合:
watch -n 1 ‘ps -aux --sort -pmem’
watch命令:
watch [options] COMMAND
-n:週期
-d:高亮顯示
-t:關閉watch命令在頂部的時間間隔
---------------------------------
pstree:查看進程樹
監控線程數:ps -ef | grep java | wc -l
監控網絡客戶鏈接數:netstat -n | grep tcp | grep 偵聽端口 | wc -l
相關文章
相關標籤/搜索