我使用ttyS0作为串行控制台连接到redhat,这是使用/etc/init/ttyS0.conf设置的。
当我连接到串行控制台时,无法找到agetty进程,但是在ttyS0上看到了一个bash外壳。而使用SSH,我可以看到进程清单中的agetty进程。这是如何工作的,在通过控制台进行连接时,bash会杀死agetty并使自己在ttyS0上运行。
# /etc/init/ttyS0.conf
#
stop on runlevel [S016]
start on runlevel [23]
#
respawn
instance /dev/ttyS0
exec agetty -h -L -w /dev/ttyS0 115200 vt102
#当通过控制台连接时没有agetty进程,但是我看到bash进程与ttyS0
virsh # console --domain 1
Connected to domain LMS
Escape character is ^]
login: root
Password:
Last login: Fri Nov 9 03:33:11 from 192.168.122.1
[root@lmm ~]# ps -eaf | grep -i agetty
root 8397 8376 0 03:37 ttyS0 00:00:00 grep -i agetty
[root@lmm ~]#
[root@lmm ~]# ps -eaf | grep -i ttyS0
root 8376 5585 0 03:37 ttyS0 00:00:00 -bash通过SSH连接到机器时的agetty进程
[root@lmm ~]# ps -eaf | grep -i agetty
root 5585 1 0 03:32 ttyS0 00:00:00 agetty -h -L -w /dev/ttyS0 115200 vt102发布于 2018-11-09 09:48:58
当您使用由agetty管理的终端进行连接时(在通过串口进行连接时就是这种情况),agetty将自己替换为没有分叉的login (参见的实施util-linux)。因此,一旦登录,就不再有agetty进程了。
https://unix.stackexchange.com/questions/480727
复制相似问题