我在获取单个进程的实时 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
命令应该像广告中那样工作。无论如何,作为一个肮脏的黑客,你总是可以解析完整的输出ps
(NNN
你所在的PID在哪里):
ps aux | awk -v OFS="\t" '$2=="NNN"'
或者,保持输出格式与以下内容相同ps
:
ps aux | grep -i '^[a-z ]*NNN '
您可能需要ps
稍微调整这些选项,因为它们在 BSD 中有所不同。只需使用打印所有过程的任何组合即可。