我使用以下命令启动了一个子进程:
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
有时候命令
cmd
会卡住,导致我的Python脚本也在此处卡住。我想让程序运行一段时间(10秒?),如果没有得到响应,则杀死进程并继续执行我的脚本。 我该如何做到这一点?
我使用以下命令启动了一个子进程:
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
cmd
会卡住,导致我的Python脚本也在此处卡住。Popen.communicate
方法有一个timeout参数:proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate(timeout=10)[0]
proc.terminate()
是你要找的东西。