【发布时间】:2010-09-25 04:05:09
【问题描述】:
我使用以下方式运行子进程:
p = subprocess.Popen("subprocess",
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
此子进程可以在 stderr 上出现错误时立即退出,或者继续运行。我想检测其中任何一种情况 - 后者需要等待几秒钟。
我试过了:
SECONDS_TO_WAIT = 10
select.select([],
[p.stdout, p.stderr],
[p.stdout, p.stderr],
SECONDS_TO_WAIT)
但它只是返回:
([],[],[])
在任何一种情况下。我能做什么?
【问题讨论】:
-
注意:如果子进程产生足够的输出,它可能会死锁。如果使用 PIPE,则需要消耗 stdout/stderr
标签: python select timeout subprocess popen