ubuntu libvirt 串行控制台需要重新启动 ttyS0 才能连接吗?

ubuntu libvirt 串行控制台需要重新启动 ttyS0 才能连接吗?

我正在尝试配置从我的 libvirt 主机到其一个客户机的串行访问。

我已经在客户机上配置了该设备并启动了它:

jsharpe@sel-app1:~$ cat /etc/init/ttyS0.conf 
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.

start on stopped rc or RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -8 9600 ttyS0

jsharpe@sel-app1:~$ sudo restart ttyS0
ttyS0 start/running, process 767

jsharpe@sel-app1:~$ ps aux|grep ttyS0
root       767  0.2  0.0   6080   632 ttyS0    Ss+  17:20   0:00 /sbin/getty -8 9600 ttyS0
jsharpe    769  0.0  0.0   7624   904 pts/0    S+   17:20   0:00 grep --color=auto ttyS0

在主机上,我尝试连接 virsh:

jsharpe@twoface:~ $ virsh console sel-app1
Connected to domain sel-app1
Escape character is ^]

... 此时,主机就挂了。我可以用 ^] 将其杀死,但其他按键不会显示在终端中。

现在,回到客人,让我们重新启动ttyS0:

jsharpe@sel-app1:~$ sudo restart ttyS0
ttyS0 start/running, process 772
jsharpe@sel-app1:~$ ps aux|grep ttyS0
root       772  1.0  0.0   6076   560 ttyS0    Ss+  17:23   0:00 /sbin/getty -8 9600 ttyS0
jsharpe    774  0.0  0.0   7624   904 pts/0    S+   17:23   0:00 grep --color=auto ttyS0

太好了,回馈楼主:

jsharpe@twoface:~ $ virsh console sel-app1
Connected to domain sel-app1
Escape character is ^]

Ubuntu 10.04.3 LTS sel-app1 ttyS0

sel-app1 login: 

登录提示?所以我必须重启 ttyS0尝试连接了吗?什么鬼?请注意,这不是超时问题。主机/控制台命令将无限期挂起。直到重新启动 ttyS0 后,连接才会发生。

答案1

如果我没记错的话,串行端口没有标准的方法来检测另一端是否有终端连接——或者如果有,大多数虚拟串行控制台根本不会费心实现它们。因此代理ttyS0 的实例在客户机启动时启动,登录横幅只是发送到无处(发送到断开连接的端口)。当您最终连接时,代理不知道这一点;它只是停留在登录提示符处。您可以尝试盲目输入用户名,它就会被发送。

按下某个键(例如 )Enter将导致代理重新显示登录横幅。

相关内容