virsh控制台和tty大小

Modified on: Wed, 31 Jul 2019 09:40:02 +0800

我有一个通过ssh连接的虚拟化服务器。如果我现在更改窗口的大小,它将自动传播到服务器。使用stty -a最容易看到,检查列和行值。

然后我使用virsh console连接到基于KVM的虚拟机上的串行接口。当我现在更改窗口的大小时,它不会传播到虚拟服务器。通过检查stty -a可以很容易地看到这一点,当我更改窗口大小时,它不会在虚拟机上更新。这意味着换行符在终端中无法正常工作,并且任何依赖窗口大小进行格式化(emacs,man等)的应用程序都会搞乱,除非客户端上的窗口大小与服务器上的默认大小相匹配。

解决方法是使用stty手动设置窗口大小以匹配客户端窗口,但我想知道是否有任何方法可以传播此信息并自动在虚拟机中设置窗口大小。

最佳答案

你可以在shell中解决这个问题。

命令:

eval `/usr/bin/resize`

将适当地设置COLUMNS和LINES shell变量,然后导出它们。所以在bash中,您可以将以下内容添加到.bash_profile(或.profile,具体取决于您使用的内容)

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

或者在zsh中:

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

这样就可以在显示每个提示之前执行调整大小。效果不会像ssh或telnet那样,窗口更改会立即处理,但我认为这可能是你得到的最好的。

作者:,mark

相关问答

添加新评论