Python 绕开子流程不获得回复?
我有一个守护进程,它查询硬件并根据响应采取操作。我注意到,由于某种原因,我得到回复的可能性很小,并且我的守护进程启动了一个新的自身实例 这是因为我的代码由于Python 绕开子流程不获得回复?,python,python-2.7,subprocess,nonblocking,Python,Python 2.7,Subprocess,Nonblocking,我有一个守护进程,它查询硬件并根据响应采取操作。我注意到,由于某种原因,我得到回复的可能性很小,并且我的守护进程启动了一个新的自身实例 这是因为我的代码由于communicate()而被阻塞,并且它从未得到回复,因此从未返回 ps = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) out = ps.communicate() return out 我怎样才能避免这个问题?我在linux上
communicate()
而被阻塞,并且它从未得到回复,因此从未返回
ps = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
out = ps.communicate()
return out
我怎样才能避免这个问题?我在linux
上使用2.7
,我看到3.3+
在子进程中有可用的超时,但我没有,有没有任何非阻塞方式来实现这一点?信号报警器工作吗 试试这个:
ps = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = ps.communicate()
print out
print err