【发布时间】:2016-12-06 16:55:16
【问题描述】:
在我的 python 程序中,我有两个 subprocesses 由一个 pipe 互连,一个连接到 stdin,另一个连接到 stdout。我的问题是,当数据流结束时,子进程会挂起,直到我按下ctrl+c。在我看来,子流程正在打开我的管道。如果我能知道数据何时流经管道,我可以手动关闭它。
def write(tag_name):
p_r, p_w = os.pipe()
pv = subprocess.Popen('pv', stdin=None, stdout=p_w)
dd = subprocess.Popen('dd bs=64k of=/dev/nst0'.split(), stdin=p_r, stdout=None)
dd.wait()
【问题讨论】: