console virsh e tamanho tty

console virsh e tamanho tty

Eu tenho um servidor de virtualização ao qual me conecto por ssh. Se eu alterar agora o tamanho da janela, ela será automaticamente propagada para o servidor. É mais facilmente visto usando stty -a, verificando os valores das colunas e das linhas.

Em seguida, uso virsh consolepara conectar-me à interface serial em uma máquina virtual baseada em KVM. Quando altero o tamanho da janela, ela não se propaga para o servidor virtual. Isso é mais facilmente visto verificando stty -a, que não é atualizado na máquina virtual quando altero o tamanho da janela. Isso significa que as quebras de linha não funcionam corretamente no terminal e qualquer aplicativo que depende do tamanho da janela para formatação (emacs, man, etc) fica confuso, a menos que o tamanho da janela no cliente corresponda ao tamanho padrão no servidor.

Uma solução alternativa é definir manualmente o tamanho da janela para corresponder à janela do cliente usando stty, mas gostaria de saber se existe alguma maneira de fazer com que essas informações se propaguem e definam o tamanho da janela na máquina virtual automaticamente.

Responder1

Você poderia contornar esse problema principalmente no shell.

O comando:

eval `/usr/bin/resize`

definirá as variáveis ​​de shell COLUMNS e LINES apropriadamente e depois as exportará. Então, no bash, você pode adicionar o seguinte ao seu .bash_profile (ou .profile, dependendo de qual você usa)

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

Ou em zsh:

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

Para que um redimensionamento fosse realizado logo antes de cada prompt ser exibido. O efeito não seria como o do ssh ou do telnet, onde as alterações da janela seriam tratadas imediatamente, no entanto, acho que isso é provavelmente o melhor que você obterá.

Responder2

Telnet e SSH possuem um canal fora de banda para definir essas configurações. A interface serial não. Ver:https://www.rfc-editor.org/rfc/rfc1073ehttps://www.rfc-editor.org/rfc/rfc4254#page-14

Responder3

se o comando de redimensionamento não estiver disponível em seu sistema, você pode tentar algo como:

stty rows 45 
stty columns 140

mas você tem que colocá-lo .bash_profilepara persistir a mudança e então obtê-lo para ver a mudança

Responder4

Apenas acrescentando à resposta de Mark, porque o Serverfault não me permite comentar.

Quando o domínio alvo éOpenBSD 6.6, o redimensionamento está localizado em outro lugar e requer pelo menos o conjunto xbase66.

Além disso, se você estiver usando o padrãoksh, basta executar:

eval `/usr/X11R6/bin/resize`

É uma pena que isso não esteja no Guia de administração KVM da Red Hat.

informação relacionada