Linux ps命令 – 顯示進程狀態
ps命令來自于英文詞組”process status“的縮寫,其功能是用于顯示當前系統的進程狀態。使用ps命令可以查看到進程的所有信息,例如進程的號碼、發起者、系統資源使用占比(處理器與內存)、運行狀態等等。幫助我們及時的發現哪些進程出現”僵死“或”不可中斷“等異常情況。
經常會與kill命令搭配使用來中斷和刪除不必要的服務進程,避免服務器的資源浪費。
語法格式:ps [參數]
常用參數:
a 顯示現行終端機下的所有程序,包括其他用戶的程序
-A 顯示所有程序
c 顯示每個程序真正的指令名稱,而不包含路徑
-C <指令名稱> 指定執行指令的名稱,并列出該指令的程序的狀況
-d 顯示所有程序,但不包括階段作業管理員的程序
e 列出程序時,顯示每個程序所使用的環境變量
-f 顯示UID,PPIP,C與STIME欄位
f 用ASCII字符顯示樹狀結構,表達程序間的相互關系
g 顯示現行終端機下的所有程序,包括所屬組的程序
-G <群組識別碼> 列出屬于該群組的程序的狀況
h 不顯示標題列
-H 顯示樹狀結構,表示程序間的相互關系
-j 采用工作控制的格式顯示程序狀況
-l 采用詳細的格式來顯示程序狀況
L 列出欄位的相關信息
-m 顯示所有的執行緒
n 以數字來表示USER和WCHAN欄位
-N 顯示所有的程序,除了執行ps指令終端機下的程序之外
-p <程序識別碼> 指定程序識別碼,并列出該程序的狀況
r 只列出現行終端機正在執行中的程序
-s <階段作業> 列出隸屬該階段作業的程序的狀況
s 采用程序信號的格式顯示程序狀況
S 列出程序時,包括已中斷的子程序資料
-t <終端機編號> 列出屬于該終端機的程序的狀況
-T 顯示現行終端機下的所有程序
u 以用戶為主的格式來顯示程序狀況
-U <用戶識別碼> 列出屬于該用戶的程序的狀況
U <用戶名稱> 列出屬于該用戶的程序的狀況
v 采用虛擬內存的格式顯示程序狀況
-V或V 顯示版本信息
-w或w 采用寬闊的格式來顯示程序狀況
x 顯示所有程序,不以終端機來區分
X 采用舊式的Linux i386登陸格式顯示程序狀況
-y 配合選項”-l”使用時,不顯示F(flag)欄位,并以RSS欄位取代ADDR欄位
--cols <每列字符數> 設置每列的最大字符數
--headers 重復顯示標題列
--help 在線幫助
--info 顯示排錯信息
--lines <顯示列數> 設置顯示畫面的列數
參考實例
顯示系統中全部的進程信息,含詳細信息:
[root@linuxcool ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 20:05 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 20:05 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 20:05 0:00 [rcu_par_gp]
………………省略部分輸出信息………………
結合輸出重定向,將當前進程信息保留備份至指定文件:
[root@linuxcool ~]# ps aux > backup.txt
結合管道操作符,將當前系統運行狀態中指定進程信息過濾出來:
[root@linuxcool ~]# ps -ef | grep ssh
………………省略輸出信息………………
結合管道操作符,將當前系統運行狀態中指定用戶的進程信息過濾出來:
[root@linuxcool ~]# ps -u root
PID TTY TIME CMD
1 ? 00:00:01 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
………………省略部分輸出信息………………
結合管道操作符與sort命令,依據處理器使用量(第三列)情況降序排序:
[root@linuxcool ~]# ps aux | sort -rnk 3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2341 0.4 8.1 4504040 164896 tty2 Sl+ 20:05 0:24 /usr/bin/gnome-shell
root 4534 0.3 0.4 220064 8520 ? Ssl 21:37 0:00 /usr/libexec/nm-dispatcher
gdm 1541 0.1 7.3 4211428 147400 tty1 Sl+ 20:05 0:06 /usr/bin/gnome-shell
………………省略部分輸出信息………………
結合管道操作符與sort命令,依據內存使用量(第四列)情況降序排序:
[root@linuxcool ~]# ps aux | sort -rnk 4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2341 0.4 8.1 4503976 164828 tty2 Sl+ 20:05 0:27 /usr/bin/gnome-shell
gdm 1541 0.1 7.3 4211428 147556 tty1 Sl+ 20:05 0:08 /usr/bin/gnome-shell
root 2661 0.0 3.1 1271636 63004 tty2 Sl+ 20:05 0:01 /usr/bin/gnome-software --gapplication-service
………………省略部分輸出信息………………