Linux
使用單行命令獲取 linux 程序的實時 CPU 使用率,結果很簡單
我到處搜尋,卻一無所獲。我正在嘗試創建一個小型儀表來顯示由 PID 指定的一個程序的 CPU 使用率。
我需要命令來列印一個簡單的答案,因此為什麼 top -p $pid 不好。該命令由 PHP 執行,需要立即列印響應。
與我需要的東西密切相關的是
sudo ps -p $pid -o %cpu
但經過測試和搜尋後,我發現這列印了自程序開始以來的平均使用情況。從命令 si 執行的那一刻起,我就需要實時使用情況,就像它顯示在頂部一樣。
這可能嗎?
編輯::
$cmd = 'sudo sh -c "top -n1 | awk \'/30100/ {print $9}\'"'; echo exec($cmd);
嘗試無殼
$cmd = "sudo top -n1 | awk '/30100/ {print $9}'"; echo exec($cmd);
仍然沒有結果,它沒有回應任何東西
好吧,我將從這樣的天真的方法開始:
$ top |grep %pid
在 ubuntu 12.04 上,每次更新 top 時,它都會輸出一次 PID 行:
username@usrver / $ top |grep 2593 2593 username 20 0 1103m 170m 16m S 30 2.2 67:25.38 chrome 2593 username 20 0 1103m 170m 16m S 28 2.2 67:26.24 chrome 2593 username 20 0 1103m 170m 16m S 30 2.2 67:27.15 chrome 2593 username 20 0 1103m 170m 16m S 23 2.2 67:27.86 chrome 2593 username 20 0 1103m 170m 16m S 25 2.2 67:28.60 chrome
然後用 awk 抓取第 10 個欄位,不過,我們這裡不需要使用 grep。awk 可以為您的 PID 正則表達式,然後列印 CPU 值:
username@usrver / $ top | awk '/2593/ {print $10}' 25 29 30 32