2014-11-23 3 views
0

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

+0

'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

답변

2

없이 대화 형 콘솔을 실행할 수 없습니다 당신이 시도 했나 :

ssh -t <user>@<libvirthost> virsh console <vm_name> 

을 여기서 사용자 - libvirthost libvirthost에 존재하는 사용자 - 어디 libvirt를 VM이 실행 중입니다.

More here

+0

괜찮아, 내가 downvoter 아니지만. –

+0

글쎄, 난별로 상관 없어. 나는 여전히 비슷한 문제를 겪고 있으며,이 질문과 다른 많은 문제들에 빠지기 때문에 그를 도울 수는있다. 어쨌든, 적어도 설명은 도움이 될 것입니다 (downvoter에서) – Lukino