subprocess.Popen上的跨平台资源使用情况

时间:2014-03-28 14:04:41

标签: python subprocess cpu popen ram

首先,如果在对不起副本之前询问过这个问题,但我无法在任何地方找到问题的答案。

所以,我是Python的新手,我目前正在研究一个Web应用程序的包装器。 此包装器使用Popen启动子进程,然后将有关该子进程的信息发送到Web应用程序。到目前为止,一切都很顺利。

现在我唯一的问题是; 是否可以获得子进程的资源使用( RAM和CPU )?
如果是这样,我该怎么办呢?跨平台的东西会很棒,但Windows,Mac和Linux的不同方法也可以。

如果无法通过子进程获取。我如何从另一个进程获取资源使用?

任何帮助将不胜感激!
感谢您的时间!

1 个答案:

答案 0 :(得分:0)

psutil提供了一个跨平台的解决方案来获取子进程的资源使用,例如:

import random
import psutil # $ pip install psutil

p = psutil.Process(random.choice(psutil.pids()))
print(p.name())
print(p.cpu_times())
print(p.memory_info())

获取现有subprocess.Popen个实例的信息,只需将popen_instance.pid传递给psutil.Process即可。您也可以直接使用psutil.Popen创建子流程。