最近在看linux優化大師這本書,第2章祥細講解了分析系統用的工具,這里把一些內容整理出來,以便加深印像。
當進行系統分析時,ps命令顯示有關選擇的活躍進程的信息。ps命令提供當前已存在的進程列表,和top命令相比,ps命令可以靜態方式提供更祥細的信息。
ps有3種不同類型的命令選項:
- UNIX選項,可以組合起來,必須在前面加一個連字符“-”
- BSD選項,可以組合起來,不能使用連字符“-”
- GNU長選項,在前面有2個連字符“--"
以centos為例,見下圖:
ps -ef 可列出所有的進程。
ps aux 這里的PID對進一步操作很重要,如果使用pmap或renice工具,PID的號碼是必需的,使用BSD風格的選項將增加一個進程狀態(stat=STAT)顯示,並顯示命令參數(args=COMMAND)來取代可執行文件的名稱。
使用BSD風格的選項還可以改變進程選擇,包括在其他終端(TTY)中擁有的進程。此外,還可以設置在所有進程中過慮,以排除其他用戶所擁有的進程或沒有在一個終端上的進程。例如:使用用戶自定義的格式查看每個進程:
如果僅顯示sshd則可以鍵入 ps -C sshd:
還可以查看HTTPD進程的ID, ps -C httpd -o pid=
如果要查看線程信息,則可以鍵入:ps aux |grep httpd ps -L pid(進程ID)
最后來邏列一下 ps命令的一些選項參數吧:
一. 進程選擇。
| -A |
選擇所有進程 與 -e相同 |
| -N |
選擇除滿足指定條件以外的所有進程。(否定選擇)與--deselect相同 |
| T |
選擇與該終端相關的所有進程。與不帶任何參數的t選項相同 |
| -a |
選擇除session leader 以外的進程和與該終端不相關的所有進程 |
| a |
這個選項列出使用該終端(tty)的所有進程,或當與x選項一起使用時列出所有進程 |
| -d |
選擇除session leader 以外的所有進程 |
| -e |
選擇所有進程,與-A相同 |
| r |
限制只選擇正在運行的進程 |
| X |
列出所有進程 |
| --deselect |
與-N相同 |
二.Ps 命令可以使用這些選項來選擇要顯示的信息。輸出控制如下:
| -F |
額外的全格式。參見-f選項 |
| -O format |
類似於-o,但是預加載了一些默認列。與-o pid,format,state,tname,time,command或-o pid,format,tname,time,cmd相同,參見-o |
| -M |
添加安全性數據列,與Z相同(SELINUX) |
| X |
寄存器的格式 |
| Z |
與-M相同 |
| -c |
為-l選項顯示不同的調度信息 |
| -f |
全格式的列表。與-L一起使用時,添加NLWP(線程數量)和LWP(線程ID)列 |
| j |
BSD job控制格式。 |
| -j |
Job格式 |
| l |
顯示BSD長格式 |
| -l |
長格式,-y選項通常對此選項有用 |
| O format |
指定用戶定義的格式 |
| -o format |
用戶定義的格式。 |
| s |
顯示信號格式 |
| u |
顯示面向用戶的格式 |
| v |
顯示虛擬內存格式 |
| -y |
不顯示選項;顯示rss地址位,這個選項只能與-l一起使用 |
| -Z |
顯示安全上下文格式(selinux) |
| --format format |
用戶定義的格式,與-o和o相同 |
| --context |
顯示安全上下文格式(selinux) |
| 三.線程顯示 |
|
| H |
顯示線程 |
| -L |
顯示線程可能使用LWP NLWP列 |
| -T |
顯示線程可能使用SPID列 |
| M |
在進程之后顯示線程 |
| -m |
在進程之后顯示線程 |
| 四.進程狀態碼 |
|
| D |
不可中斷的睡眠 |
| S |
可中斷的睡眠 |
| R |
運行中的進程 |
| T |
已停止,通過一個job控制信號或因為它正在被跟蹤 |
| Z |
已消亡的進程 |
| X |
死亡(永遠不會看到) |
| W |
分頁 |
| < |
高優先級 |
| N |
低優先級 |
| L |
在內存中鎖定分頁 |
| s |
Session leader |
| l |
多線程 |
| + |
在前台進程組中 |

![clip_image002[10] clip_image002[10]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvMTEzNzcwMi8yMDE3MDMvMTEzNzcwMi0yMDE3MDMzMTIwMjAwODkzMC0xMjM3MTIyMDgzLmpwZw==.png)
![clip_image004[10] clip_image004[10]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvMTEzNzcwMi8yMDE3MDMvMTEzNzcwMi0yMDE3MDMzMTIwMjAxMDIyNy0xODg3MDM0MzEyLmpwZw==.png)
![clip_image006[10] clip_image006[10]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvMTEzNzcwMi8yMDE3MDMvMTEzNzcwMi0yMDE3MDMzMTIwMjAxMTQ2MS0xMzcyMTk4MTg0LmpwZw==.png)
![clip_image008[10] clip_image008[10]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvMTEzNzcwMi8yMDE3MDMvMTEzNzcwMi0yMDE3MDMzMTIwMjAxMjI1OC0yODMyODU1OC5qcGc=.png)
![clip_image010[10] clip_image010[10]](/image/aHR0cHM6Ly9pbWFnZXMyMDE1LmNuYmxvZ3MuY29tL2Jsb2cvMTEzNzcwMi8yMDE3MDMvMTEzNzcwMi0yMDE3MDMzMTIwMjAxMzUyNC01NjU3MzMwMTEuanBn.png)