Python的 - 杀挂起进程开始使用subprocess.Popen

问题描述:

我已经开始使用一个子进程:Python的 - 杀挂起进程开始使用subprocess.Popen

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) 
output = proc.communicate()[0] 

有时命令cmd挂,所以我的Python脚本也挂在这一点上。

我想让它运行一段时间(10秒?),如果我没有得到响应,那么简单地杀死进程并继续使用我的脚本。

我该怎么做?

如果你使用python 3,Popen.communicate有超时kwarg:

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) 
output = proc.communicate(timeout=10)[0] 
+0

多方便。我应该更仔细地阅读文档。 – jlconlin

subprocess documentationproc.terminate()是你什么是正在寻找

+0

是的,我能做到这一点,但什么都可以“ t do等待10秒,然后选择放弃。我怎么做? – jlconlin