consola virsh y tamaño tty

consola virsh y tamaño tty

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 las filas.

Luego lo uso virsh consolepara conectarme a la interfaz serie 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 marcando 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 la 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 configurar 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.

Respuesta1

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

El comando:

eval `/usr/bin/resize`

establecerá las variables de shell COLUMNAS y LÍNEAS apropiadamente y luego las exportará. Entonces, en bash, puedes agregar lo siguiente a tu .bash_profile (o .profile, dependiendo de cuál uses):

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

O en zsh:

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

De modo que se realizaría un cambio de tamaño justo antes de que se mostrara cada mensaje. El efecto no sería como el de ssh o telnet, donde los cambios de ventana se manejarían inmediatamente como resultado, sin embargo, creo que esto es probablemente lo mejor que obtendrá.

Respuesta2

Telnet y SSH tienen un canal fuera de banda para configurar estos ajustes. La interfaz serie no. Ver:https://www.rfc-editor.org/rfc/rfc1073yhttps://www.rfc-editor.org/rfc/rfc4254#page-14

Respuesta3

Si el comando de cambio de tamaño no está disponible en su sistema, puede intentar algo como:

stty rows 45 
stty columns 140

pero tienes que ponerlo .bash_profilepara persistir el cambio y luego obtenerlo para ver el cambio.

Respuesta4

Solo agrego a la respuesta de Mark, porque Serverfault no me permite comentar.

Cuando el dominio objetivo esOpenBSD 6.6, el cambio de tamaño se encuentra en otro lugar y requiere al menos xbase66 configurado.

Además, si está utilizando el valor predeterminadoksh, basta con ejecutar:

eval `/usr/X11R6/bin/resize`

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

información relacionada