POPEN 명령을 사용하여 guest-VM 콘솔을 읽고 쓰려고합니다. 독서 (stdout) 잘 작동하지만 POPEN에 stdin을 추가 할 때 "제어 TTY없이 대화 형 콘솔을 실행할 수 없습니다"라는 메시지가 나타납니다. 이 오류를 극복하는 방법에 대한 제안을 감사하십시오.제어 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')
ERROR : 오류 : 지배 TTY
'pexpect','pty' 모듈을 사용하여 pseudo-tty를 제공 할 수 있습니다. 다음은 [코드 예제, pty를 사용하여 출력을 읽는 방법]입니다 (http://stackoverflow.com/a/12471855/4279) (귀하의 경우는 비슷하지만 읽기/쓰기를 인터리빙하려면'select' 루프가 필요합니다. 'pty.spawn()'이 구현되었습니다.] (https://github.com/python/cpython/blob/3f409f756b7b8f75c4543b2c31566bd8b8dbb3dd/Lib/pty.py#L119-L170)). – jfs