Linux

使用單行命令獲取 linux 程序的實時 CPU 使用率,結果很簡單

  • August 11, 2015

我到處搜尋,卻一無所獲。我正在嘗試創建一個小型儀表來顯示由 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

引用自:https://serverfault.com/questions/681607