【发布时间】:2016-11-08 04:57:43
【问题描述】:
我想在 linux 服务器中获取所有进程信息。 PID, USER, CPU% , COMMAND ...
确切地说,我想在 python 脚本中获取这些信息。我试过了a,b = commands.getstatusoutput('top -n 1')
这给了我大约 20 行按 CPU% 排序的结果,但我想要更多,大约 40 或 50 行结果。
我该怎么办?
我使用 psutil 如下,对于每个 proc,它需要等待 1 秒。如何快速获得 cpu_percent like top 命令。
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'username', 'cpu_percent', 'name'])
pinfo['cpu_percent'] = proc.cpu_percent(interval=1)
if pinfo['cpu_percent'] > 0:
print(pinfo)
except psutil.NoSuchProcess:
pass
【问题讨论】:
-
第一次阅读top的手册
-
阅读proc(5)
-
其实我看过top的手册,但是我误解了“top -b”的功能。 nexus66 给了我正确的答案。
标签: python linux top-command