Linux
使用 /proc/stat 獲取系統上執行的程序數
如何找出系統上正在執行的程序的真實數量?許多文章提到使用
ps
以計算程序數。但最近我看了看cat /proc/stat
,它輸出:cpu 972 0 1894 189609 236 26 490 0 0 0 cpu0 972 0 1894 189609 236 26 490 0 0 0 intr 101595 157 10 0 0 0 0 0 0 3 0 0 0 136 0 0 0 1406 0 0 14936 934 19133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ctxt 244344 btime 1405754990 processes 3912 procs_running 3 procs_blocked 0 softirq 122778 0 48263 439 15599 19037 0 1 0 7405 32034
它顯示程序數為 3912。使用類似的東西
ps -A --no-headers | wc -l
只顯示 173 個程序。為什麼會
/proc/stat
顯示這麼多程序(增加了 3739 個程序)?誰給出了正確的號碼?
查看 的文件
proc(5)
,您會在processes欄位中看到:自引導以來的分叉數。
所以這根本不是你要找的號碼。
ps
正如您已經知道的那樣,將告訴您,計算名稱中只有數字的目錄/proc
是另一種方法。
根據您是否要包含執行緒,將 -L 選項添加到您的
ps
命令中:$ ps -A --no-headers | wc -l 359 $ ps -AL --no-headers | wc -l 967
ps預設不單獨列出執行緒。執行緒的意義在於它們是 一個程序地址空間內的****多個執行執行緒。