连接串行控制台时,无法在进程列表中看到agetty ttyS0

连接串行控制台时,无法在进程列表中看到agetty ttyS0

我使用 ttyS0 作​​为串行控制台来连接到 redhat linux,它是使用/etc/init/ttyS0.conf.

当我连接到串行控制台时,找不到agetty进程,但bashttyS0.而使用 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通过控制台连接时没有进程,但是我看到bashttyS0 的进程

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

答案1

当您使用由 管理的终端进行连接时agetty(这里是通过串行端口连接时的情况),agetty将其自身替换为login而不分叉(请参阅的实施util-linux)。因此,一旦您登录,就不再需要agetty任何流程。

也可以看看登录何时终止?

相关内容