virsh 콘솔 및 tty 크기

virsh 콘솔 및 tty 크기

SSH를 통해 연결하는 가상화 서버가 있습니다. 이제 창 크기를 변경하면 자동으로 서버에 전파됩니다. 을 사용하여 stty -a열과 행 값을 확인하는 것이 가장 쉽게 볼 수 있습니다 .

virsh console그런 다음 KVM 기반 가상 머신의 직렬 인터페이스에 연결하는 데 사용합니다 . 이제 창 크기를 변경해도 가상 서버에 전파되지 않습니다. 이는 stty -a창 크기를 변경할 때 가상 머신에서 업데이트되지 않는 를 확인하면 가장 쉽게 알 수 있습니다 . 이는 클라이언트의 창 크기가 서버의 기본 크기와 일치하지 않으면 줄 바꿈이 터미널에서 올바르게 작동하지 않으며 서식 지정을 위해 창 크기에 의존하는 모든 응용 프로그램(emacs, man 등)이 엉망이 된다는 것을 의미합니다.

해결 방법은 stty를 사용하여 클라이언트 창과 일치하도록 창 크기를 수동으로 설정하는 것이지만, 이 정보를 전파하여 가상 머신에 창 크기를 자동으로 설정할 수 있는 방법이 있는지 궁금합니다.

답변1

이 문제는 대부분 셸에서 해결할 수 있습니다.

명령:

eval `/usr/bin/resize`

COLUMNS 및 LINES 셸 변수를 적절하게 설정한 다음 내보냅니다. 따라서 bash에서는 .bash_profile(또는 사용하는 항목에 따라 .profile)에 다음을 추가할 수 있습니다.

PROMPT_COMMAND="eval `/usr/bin/resize`"

또는 zsh에서:

function precmd {
    eval `/usr/bin/resize`
}

각 프롬프트가 표시되기 직전에 크기 조정이 수행되도록 합니다. 결과적으로 창 변경 사항이 즉시 처리되는 ssh 또는 telnet의 효과와는 다르지만 이것이 아마도 얻을 수 있는 최선일 것이라고 생각합니다.

답변2

Telnet 및 SSH에는 이러한 설정을 구성하기 위한 대역 외 채널이 있습니다. 직렬 인터페이스는 그렇지 않습니다. 보다:https://www.rfc-editor.org/rfc/rfc1073그리고https://www.rfc-editor.org/rfc/rfc4254#page-14

답변3

시스템에서 크기 조정 명령을 사용할 수 없는 경우 다음과 같이 시도해 볼 수 있습니다.

stty rows 45 
stty columns 140

.bash_profile하지만 변경 사항을 유지하려면 이를 입력 한 다음 변경 사항을 확인하려면 소스를 입력해야 합니다.

답변4

Mark의 답변에 추가하면 Serverfault에서 댓글을 달 수 없기 때문입니다.

대상 도메인이 다음인 경우오픈BSD 6.6, 크기 조정은 다른 곳에 있으며 최소한 xbase66 세트가 필요합니다.

또한, 기본값을 사용하는 경우크쉬, 다음을 실행하면 충분합니다.

eval `/usr/X11R6/bin/resize`

이것이 Red Hat의 KVM 관리 가이드에 없다는 것은 유감스러운 일입니다.

관련 정보