我替換了一些Python的使用subprocess.Popen實例與psutil.Popen實例,並預期行爲保持不變。psutil/subprocess return process code when process killed
爲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對退出代碼的保證是什麼?上述兩個返回碼都有效嗎?