如何通过路径/命令提取当前进程 CPU 使用情况并将其打印到控制台

如何通过路径/命令提取当前进程 CPU 使用情况并将其打印到控制台

我想通过进程名称/路径获取当前进程 CPU/内存使用率并将其打印到控制台。该命令应该输出一个数字,而不是提供持续的数据流,如ps.

ps -p PID不起作用:

  1. 我没有进程号(我有进程路径)
  2. 它不会将当前测量值打印到控制台一次

因此,例如,它应该看起来像这样:

$command -getCPU | grep processPath

答案1

我认为您需要的是awk,您可以使用以下命令来显示进程名称的处理器和内存使用情况。

ps -C "PROCEES_NAME" -o %cpu,%mem,cmd

结果:

%CPU %MEM CMD
 0.0  0.2 /usr/bin/python3 completion.py
 0.0  0.1 /usr/bin/python3 lib/python/jedi/evaluate/compiled/subprocess/__main__.py lib/python

然后你可以使用 awk 删除第一行:

ps -C python3 -o %cpu,%mem,cmd | awk 'FNR > 1'

结果:

 0.0  0.2 /usr/bin/python3 completion.py
 0.0  0.1 /usr/bin/python3 lib/python/jedi/evaluate/compiled/subprocess/__main__.py lib/python

如果您只想获取使用次数并跳过其他输出,您可以使用以下命令:

ps -C "python3" -o %cpu,%mem,cmd | awk 'FNR > 1 {print $1,$2}'

结果:

0.0 0.2
0.0 0.1

$1是第一行,$2是第二行,如果需要,您可以将其删除。

请记住,使用 process_name 是一个坏主意,使用 PID 更好。

答案2

好吧,我对 top 和 ps 感到困惑。我能够使用以下命令获得我想要的东西:

$ps aux | grep <processName> | awk '{print $3}'

第 3 行是当前 CPU 百分比。

相关内容