console virsh e tamanho tty

9

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

Em seguida, uso virsh console para conectar-me à interface serial em uma máquina virtual baseada em KVM. Quando eu 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 eu altero o tamanho da janela. Isso significa que as quebras de linha não funcionam corretamente no terminal e qualquer aplicativo que dependa 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 obter essas informações para propagar e definir o tamanho da janela automaticamente na máquina virtual.

    
por pehrs 20.12.2010 / 14:31

2 respostas

6

Você pode trabalhar principalmente com esse problema no shell.

O comando:

eval '/usr/bin/resize'

definirá as variáveis de shell COLUMNS e LINES adequadamente e as exportará. Então, no bash, você poderia adicionar o seguinte ao seu .bash_profile (ou .profile, dependendo do que você usa)

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

Ou em zsh:

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

Para que um redimensionamento seja executado imediatamente antes de cada prompt ser exibido. O efeito não seria como o de ssh ou telnet, onde as mudanças na janela seriam tratadas imediatamente como resultado, no entanto, acho que isso é provavelmente o melhor que você conseguirá.

    
por 27.12.2010 / 15:11
1

Telnet e SSH têm um canal fora da banda para definir essas configurações. Interface serial não. Consulte: link e link

    
por 22.12.2010 / 16:00