virsh console и размер tty
У меня есть сервер виртуализации, к которому я подключаюсь по ssh. Если я сейчас изменю размер окна, оно будет автоматически распространяться на сервер. Это легче всего увидеть, используя stty -a
, проверка столбцов и значений строк.
Я тогда использую virsh console
подключиться к последовательному интерфейсу виртуальной машины на основе KVM. Когда я теперь изменяю размер окна, оно не распространяется на виртуальный сервер. Это легче всего увидеть, проверив stty -a
, который не обновляется на виртуальной машине при изменении размера окна. Это означает, что разрывы строк не работают правильно в терминале, и любое приложение, которое использует размер окна для форматирования (emacs, man и т. Д.), Будет испорчено, если размер окна на клиенте не совпадает с размером по умолчанию на сервере.
Обходной путь - вручную установить размер окна, чтобы он соответствовал клиентскому окну, используя stty, но мне интересно, есть ли способ получить эту информацию для распространения и установки размера окна в виртуальной машине автоматически.
4 ответа
В основном вы можете обойти эту проблему в оболочке.
Команда:
eval `/usr/bin/resize`
установит переменные оболочки COLUMNS и LINES соответствующим образом и затем экспортирует их. Таким образом, в bash вы можете добавить следующее в ваш.bash_profile (или.profile, в зависимости от того, что вы используете)
PROMPT_COMMAND="eval `/usr/bin/resize`"
Или в зш:
function precmd {
eval `/usr/bin/resize`
}
Чтобы изменение размера выполнялось непосредственно перед отображением каждого запроса. Эффект не будет таким, как у ssh или telnet, где изменения окна будут обрабатываться немедленно, однако я думаю, что это, вероятно, лучшее, что вы получите.
Telnet и SSH имеют внеполосный канал для настройки этих параметров. Последовательного интерфейса нет. См. http://tools.ietf.org/html/rfc1073 и http://tools.ietf.org/html/rfc4254.
если команда изменения размера недоступна в вашей системе, вы можете попробовать что-то вроде:
stty rows 45
stty columns 140
но ты должен положить это на свой счет.bash_profile
сохранить изменение, а затем указать его источник, чтобы увидеть изменение
Просто добавив отметку в ответ, поскольку Serverfault не позволяет мне комментировать.
Когда целевой домен - OpenBSD 6.6, изменение размера находится в другом месте и требует, по крайней мере, установки xbase66.
Кроме того, если вы используете ksh по умолчанию, достаточно запустить:
eval `/usr/X11R6/bin/resize`
Жаль, что этого нет в Руководстве администратора Red Hat KVM.