psutil - 暂停进程
我正在为Linux写一个Python脚本,这个脚本的功能是当满足特定条件时暂停一个进程,然后再恢复它。为此,我使用了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
当我发现Python在交互式命令行和执行脚本时表现不一样时,我首先会怀疑是不是在运行不同版本的Python。这种情况很容易发生,特别是当你在脚本文件中用类似下面的方式指定了解释器时:
#!/usr/bin/python
不过这只是个不太可能的原因,因为根据psutil网站的信息,它应该能很好地支持从2.4到3.3的Python版本。而且,你的代码在我这台机器上运行得很好(内核2.6.32,Python 2.6.6)。
2
我知道这条信息有点老了,但对于最近遇到这个问题的人来说,
这段代码在我这里(Python 3.7.3)运行得很好:
psutil.Process(pid=19931).suspend()
而且类似的
psutil.Process(pid=19931).resume()
不过你得确保你提到的那个进程还在运行。