【发布时间】:2014-11-23 06:24:08
【问题描述】:
我正在尝试使用 POPEN 命令读取和写入 guest-vm 控制台。阅读(stdout)工作正常,但是当我将标准输入添加到 POPEN 时,我得到“无法在没有控制 TTY 的情况下运行交互式控制台”。感谢有关如何克服此错误的任何建议。
p = Popen(["virsh", "console", "guest-vm"],
shell=False, stdin=PIPE, stdout=PIPE, close_fds=True)
for line in iter(p.stdout.readline, b''):
if line == "SUCCESS":
p.stdin.write('\n')
错误: 错误:没有控制 TTY 就无法运行交互式控制台
【问题讨论】:
-
您可以使用
pexpect、pty模块来提供伪tty。这是一个code example, how to read output using pty(您的情况类似,但您需要一个select循环来交错读/写,请参阅howpty.spawn()is implemented)。