子流程状态在流程结束时永远不会改变

subprocess status never change at the end of process

我有一个简单的 python 代码可以打印一行。

# in the simple_print.py
print "  in the simple_print.py   "

在另一个文件中,我使用 subprocess.Popen 来执行此代码:

import psutil, subprocess

cmd = "python simple_print.py"
P = subprocess.Popen(cmd,shell=True)
psProcess = psutil.Process(pid=P.pid)

print "status: ", psProcess.status

状态总是运行。怎么了?因为它应该完成或终止。 谢谢大家

您永远不会等待它完成,您当前的调用进程永远不会知道您的客户进程做了什么,请在打印该状态之前尝试 P.wait()