Python - 使用subprocess.Popen开始kill kill进程

时间:2016-08-18 18:58:20

标签: python subprocess popen kill hang

我已经开始使用以下子进程:

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

有时命令cmd会挂起,所以我的Python脚本也会挂起。

我想让它运行一段时间(10秒钟?),如果我没有得到回复,那么只需终止该过程并继续使用我的脚本。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

来自subprocess documentation proc.terminate()正是您正在寻找的