【问题标题】:CPU % usage of all pid [duplicate]所有pid的CPU百分比使用率[重复]
【发布时间】:2023-03-19 00:05:02
【问题描述】:

在不知道任何程序名称的情况下,我无法获得所有 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。

【问题讨论】:

    标签: linux bash shell cpu-usage pid


    【解决方案1】:

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

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

    【讨论】:

    • 我猜 OP 知道这个命令。
    • 这个假设没有根据。他一次也没提过。
    【解决方案2】:

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

    > 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##*/} 删除之前的所有内容,包括最后一个 / 字符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 2020-11-27
      • 2012-10-19
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多