我使用 ttyS0 作为串行控制台连接到使用/etc/init/ttyS0.conf
.
当我连接到串行控制台时,找不到agetty
进程但是bash
在ttyS0
. 而使用 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
agetty
通过 SSH 连接到机器时的过程
[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
当您使用由 管理的终端进行
agetty
连接时,当您通过串行端口连接时就是这种情况,它将agetty
自身替换为login
不分叉(参见 参考资料中的实现util-linux
)。因此,一旦您登录,就不再有任何agetty
流程。另请参阅登录何时终止?