获取单个进程的CPU使用率

获取单个进程的CPU使用率

我在获取单个进程的实时 CPU 使用情况(通过其 PID)时遇到问题。我想为进程的 CPU 使用率设置一个看门狗,因为有时它会突然达到 100% 的 CPU 使用率。

我尝试过的:

top -p $PID, top -pid $PID- 看来这两个不能在 FreeBSD 上工作

ps h -p $PID -o %cpu- 有效,但返回的 CPU 使用百分比始终为0

问题是 - 如何通过 PID 获取单个进程的实时 CPU 使用情况在 FreeBSD 上

答案1

我无法访问 BSD 机器来检查,但你的ps命令应该像广告中那样工作。无论如何,作为一个肮脏的黑客,你总是可以解析完整的输出psNNN你所在的PID在哪里):

ps aux | awk  -v OFS="\t" '$2=="NNN"'

或者,保持输出格式与以下内容相同ps

ps aux | grep -i '^[a-z ]*NNN '

您可能需要ps稍微调整这些选项,因为它们在 BSD 中有所不同。只需使用打印所有过程的任何组合即可。

相关内容