psutil - 暂停过程

时间:2012-02-10 10:07:28

标签: python linux

我正在使用Python for Linux编写一个脚本,该脚本应该在满足条件时暂停进程并稍后恢复。为此,我使用的是psutil(http://code.google.com/p/psutil)。 我遇到的问题很奇怪。当我使用python命令行时,一切正常 - 进程暂停,然后恢复。但是,当我在脚本文件中使用相同的函数然后我尝试运行它时,它会抛出异常:

AttributeError: 'Process' object has no attribute 'suspend'

代码片段:

p = psutil.Process(19931)
p.suspend()
print 'suspended'
time.sleep(10)
p.resume()
print 'resumed'

当然,19931是我在后台开始的进程的类型PID,并希望它被暂停。

有没有人有想法或提示? Psutil是从Google代码安装的最新版本。

2 个答案:

答案 0 :(得分:0)

我怀疑当Python在交互式shell下执行不同并执行脚本时,第一件事就是运行不同版本的Python。当您在脚本文件中指向解释器时,很容易发生这种情况:

#!/usr/bin/python

这是一个很长的镜头,因为根据psutil网站,它应该适用于2.4到3.3的Python版本。此外,您的代码段在我的机器上运行正常(内核2.6.32,Python 2.6.6)。

答案 1 :(得分:0)

我知道它的条目很旧,但是对于最近遇到此问题的人来说,

此代码对我来说很好(Python 3.7.3):

psutil.Process(pid=19931).suspend()

同样

psutil.Process(pid=19931).resume()

但是您必须确保所引用的过程仍然有效。