获取单个进程的 CPU 使用率

Luc*_*cas 5 freebsd cpu process

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

我尝试过的

top -p $PID, top -pid $PID- 似乎这两个不在 FreeBSD 上工作

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

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

ter*_*don 4

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

ps aux | awk  -v OFS="\t" '$2=="NNN"'
Run Code Online (Sandbox Code Playgroud)

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

ps aux | grep -i '^[a-z ]*NNN '
Run Code Online (Sandbox Code Playgroud)

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