Python - 终止使用 subprocess.Popen 启动的挂起进程

Python - kill hung process started using subprocess.Popen

我已经启动了一个子流程:

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

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

我想让这个 运行 持续一段时间(10 秒?),如果我没有得到响应,那么只需终止进程并继续我的脚本。

我该怎么做?

来自 subprocess documentation proc.terminate() 就是您要找的东西

如果您使用的是 python 3,Popen.communicate 有一个超时参数:

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