使用C fork()
,父进程可以waitpid(childPid, &returnStatus, 0);
让子进程退出。
在python中,
completed = subprocess.run(['ls', '-1'])
CompletedProcess实例不会控制父进程等待子进程。子进程可以比正常运行更多的时间。
如何等待子进程完成?如何在没有pid的情况下中止/终止子进程失败?
答案 0 :(得分:1)
使用此:
p = subprocess.Popen(['ls', '-1'])
p.wait()
要查看子流程是否已完成,请查看p.poll()
。如果是None
,则该过程仍在运行。如果是数字,那就是流程的退出代码。
答案 1 :(得分:0)
只有父处理器可以使用wait(),子处理器不能。但是子处理器可以使用 pause() 来等待信号到来。