所有pid的CPU%使用率

时间:2014-02-26 16:48:37

标签: linux bash shell cpu-usage pid

我无法获得所有pid的CPU%使用率,而不知道任何程序名称。

我觉得我接近解决方案,这是我到目前为止所做的:

for line in $(pgrep -f chrome); \
   do echo -n $line" - ";       \ 
   ps -p $line -o %cpu | sed -n 2p | sed 's/ //'; done

在这个例子中,我只获得了所有chrome pid ..在下一步中我想要所有执行pid。

2 个答案:

答案 0 :(得分:0)

您可以单独使用top命令轻松完成此操作。

要按CPU百分比(降序)排序,您可以使用top -o -cpu

答案 1 :(得分:0)

如果您出于某种原因不想使用,我可以考虑采用其他几种方法。

> ps -e -o "%p-%C" 

或者如果您想在脚本中执行此操作(或者可以再次解析或检查/proc/pid/stat是否使用cpu)

#!/bin/bash
shopt -s extglob
for line in /proc/+([0-9]); do
  echo -n "${line##*/}- "
  ps -p "${line##*/}" -o %cpu | sed -n 2p | sed 's/ //'
done

哪里

  • shopt -s extglob
  • 中打开扩展文件全局
  • +([0-9])匹配包含1位或多位数字的所有文件
  • ${line##*/}删除所有内容,包括最后一个/字符