我正在使用带有subprocess.check_output
选项的python 3.5和timeout
来获取子进程的输出。如果我直接调用可执行文件,例如
>>> import subproces
>>> subprocess.check_output(["/usr/bin/gedit"],timeout=1)
...
subprocess.TimeoutExpired: Command '/usr/bin/gedit' timed out after 1 seconds
但是,如果我打电话
>>> subprocess.check_output(["strace","/usr/bin/gedit"],timeout=1)
,只有在我自己终止gedit进程后才会引发TimeoutExpired
。因此,函数subprocess.check_output
会阻塞超过1秒。
我如何使用subprocess.check_output
函数(或类似函数)来正确引发异常?