Python 子进程使用Popen失败
我试图让一个名为xselect的程序使用python中的Popen构造运行。如果我通过手动输入命令从终端手动运行xselect,它会一直运行。但是,当从python脚本执行时,它会在某个命令处冻结,并且不会继续。当我检查日志文件时,会捕获所有输出,但不会捕获任何错误消息 我认为Popen可能不知道如何处理xselect输出中的错误,这导致xselect冻结。为了解决这个问题,我尝试添加一个超时,以便它在5秒后杀死xselect,但这也不起作用 有人能帮我把这个打开吗Python 子进程使用Popen失败,python,Python,我试图让一个名为xselect的程序使用python中的Popen构造运行。如果我通过手动输入命令从终端手动运行xselect,它会一直运行。但是,当从python脚本执行时,它会在某个命令处冻结,并且不会继续。当我检查日志文件时,会捕获所有输出,但不会捕获任何错误消息 我认为Popen可能不知道如何处理xselect输出中的错误,这导致xselect冻结。为了解决这个问题,我尝试添加一个超时,以便它在5秒后杀死xselect,但这也不起作用 有人能帮我把这个打开吗 with subproces
with subprocess.Popen(args, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, universal_newlines=True) as proc:
proc.wait(timeout=5)
out = proc.stdout.read()
if TimeoutExpired:
proc.kill()
请参见此处的
proc.wait()
警告:。基本上,您应该使用proc.communicate()
,或者应该读取proc.stdout
,而不是等待