
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 관리 가이드에 없다는 것은 유감스러운 일입니다.