我用psutil.Popen 实例替换了 Python subprocess.Popen实例的一些使用,并期望行为保持不变。
Popen 状态的 psutil 文档:
stdlib subprocess.Popen 的更方便的接口。它启动一个子进程并像使用 subprocess.Popen 一样处理它,但此外它还在单个接口中提供了 psutil.Process 类的所有方法。
我发现终止进程时的返回码不一样,如下面的示例所示。
>>> import subprocess
>>> p = subprocess.Popen('sleep 100', shell=True)
>>> p.kill()
>>> p.wait()
-9
>>>
>>> import psutil
>>> p = psutil.Popen('sleep 100', shell=True)
>>> p.kill()
>>> p.wait()
9
>>>
>>> print sys.version
2.7.3 (default, Aug 28 2012, 13:02:46)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)]
>>> print psutil.__version__
2.1.1
当进程终止时,POSIX 对退出代码的保证是什么?以上返回码都有效吗?