consola virsh y tamaño tty

11

Tengo un servidor de virtualización al que me conecto a través de ssh. Si ahora cambio el tamaño de la ventana, se propagará automáticamente al servidor. Se ve más fácilmente usando stty -a, verificando las columnas y los valores de fila.

Luego uso virsh consolepara conectarme a la interfaz serial en una máquina virtual basada en KVM. Cuando ahora cambio el tamaño de la ventana, no se propaga al servidor virtual. Esto se ve más fácilmente al verificar stty -a, que no se actualiza en la máquina virtual cuando cambio el tamaño de la ventana. Esto significa que los saltos de línea no funcionan correctamente en el terminal y cualquier aplicación que dependa del tamaño de la ventana para formatear (emacs, man, etc.) se estropea a menos que el tamaño de la ventana en el cliente coincida con el tamaño predeterminado en el servidor.

Una solución alternativa es establecer manualmente el tamaño de la ventana para que coincida con la ventana del cliente usando stty, pero me pregunto si hay alguna manera de hacer que esta información se propague y establezca el tamaño de la ventana en la máquina virtual automáticamente.

pehrs
fuente

Respuestas:

7

En su mayoría, podría solucionar este problema en el shell.

El comando:

eval `/usr/bin/resize`

establecerá las variables de shell COLUMNS y LINES de manera apropiada y luego las exportará. Entonces, en bash, puede agregar lo siguiente a su .bash_profile (o .profile, dependiendo de lo que use)

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

O en zsh:

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

Para que se realice un cambio de tamaño justo antes de que se muestre cada solicitud. El efecto no sería como el de ssh o telnet donde los cambios en la ventana se manejarían inmediatamente como resultado, sin embargo, creo que esto es probablemente lo mejor que obtendrá.

marca
fuente
Un poco hacky, pero sigue siendo una buena solución. ¡Gracias!
pehrs
Consulte también esta respuesta para hacerlo sin el resizecomando de xterm : unix.stackexchange.com/a/283206
rsaw
2

Telnet y SSH tiene un canal fuera de banda para configurar estos ajustes. La interfaz en serie no. Ver: http://tools.ietf.org/html/rfc1073 y http://tools.ietf.org/html/rfc4254#page-14

Mircea Vutcovici
fuente
2
Me di cuenta de que había un canal de control involucrado. Pero la pregunta sigue siendo, ¿hay una mejor solución para las consolas de máquinas virtuales basadas en KVM? (No me importa reconfigurar las máquinas)
pehrs
0

Simplemente agregando a la respuesta de Mark, porque Serverfault no me permite comentar.

Cuando el dominio de destino es OpenBSD 6.6 , el cambio de tamaño se encuentra en otro lugar y requiere al menos el conjunto xbase66.

Además, si está utilizando el ksh predeterminado , es suficiente para ejecutar:

eval `/usr/X11R6/bin/resize`

Es una pena que esto no se encuentre en la Guía de administración de KVM de Red Hat.

tryfail
fuente