在没有psutil的情况下获取给定PID的CPU%

时间:2014-09-29 15:22:37

标签: python cpu

我无法在某个盒子上安装任何模块,因此 - 我无法使用psutil

需要通过给定的PID来获得CPU使用率的百分比。

我看到的一个解决方案 - 使用subprocess,但看起来非常糟糕:

# CPU usage
cpu_percentage = subprocess.call("top -p 25393 -b -n 1 | grep -w java | awk '{print $9}'", shell=True, stdout=devnull)
print('\nCPU percentage usage by Java: %s%%' % cpu_percentage)

另外,这样 - 我无法找到如何直接传递变量,而不是直接传递PID(在此示例中为25393)。

1 个答案:

答案 0 :(得分:1)

要将变量传递给字符串,您可以像在第3行上那样对其进行格式化:

# CPU usage

# +Apply here:
cpu_percentage = subprocess.call("top -p %d -b -n 1 | grep -w java | awk '{print $9}'" % PID, shell=True, stdout=devnull)

# +like you did here:
print('\nCPU percentage usage by Java: %s%%' % cpu_percentage)

PID应该是int实例,以便让这项工作