如何在子进程退出并关闭管道时收到通知?

时间:2017-05-21 07:51:58

标签: python subprocess pipe

这是我之前的question

的后续内容

假设我有一个Python程序,它使用subprocess.Popen分叉和执行另一个Python程序。

我想在fork之前创建一个管道,并在子管退出时关闭管道时收到通知。当然,我不想同步等待管道。它在Python中可行吗?

1 个答案:

答案 0 :(得分:1)

您可以使用子流程poll()
虽然你必须时不时地测试,看它是否已经完成

致电计划:

import subprocess
import time
c=subprocess.Popen(['python', 'called.py'], stdout=subprocess.PIPE)
finished = False
while finished == False:
    if c.poll() != None:
        finished = True
        break
    time.sleep(1)
    print "Still working"
print "finished"

被叫程序:

import time
time.sleep(15)