繁体   English   中英

子进程无法使用Popen

[英]Child Process is failing using Popen

我正在尝试获取一个名为xselect的程序,以使用python中的Popen构造运行。 如果我通过手动键入命令从终端手动运行xselect,则它将一直运行。 但是,从python脚本完成后,它会冻结在某个命令中,并且不会继续。 当我检查日志文件时,将捕获所有输出,但不会捕获任何错误消息。

我认为Popen可能不知道如何处理xselect输出中的错误以及导致xselect冻结的错误。 为了解决这个问题,我尝试添加一个超时,以使其在5秒钟后杀死xselect,但这也不起作用。

谁能帮我运行这个程序?

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()的警告: https : proc.wait() 基本上,您应该使用proc.communicate() ,或者应该从proc.stdout读取而不是等待。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM