为什么我的桌面上运行着六个 getty 进程?

xan*_*eng 23 linux terminal console

我的桌面系统是:

$ uname -a
Linux xmachine 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:25:36 UTC 2011 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

通过运行ps a | grep getty,我得到这个输出:

  900 tty4     Ss+    0:00 /sbin/getty -8 38400 tty4
  906 tty5     Ss+    0:00 /sbin/getty -8 38400 tty5
  915 tty2     Ss+    0:00 /sbin/getty -8 38400 tty2
  917 tty3     Ss+    0:00 /sbin/getty -8 38400 tty3
  923 tty6     Ss+    0:00 /sbin/getty -8 38400 tty6
  1280 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
  5412 pts/1    S+     0:00 grep --color=auto getty
Run Code Online (Sandbox Code Playgroud)

我认为 ttyX 进程用于输入/输出设备,但我不太确定。基于此,我想知道为什么有 6 个 ttyX 进程正在运行?我实际上只有一个输入设备(键盘)。

Chr*_*own 25

这表明是因为一个getty进程在tty1和之间的每个虚拟控制台 (VC) 上运行tty6。您可以通过使用Alt-F1Alt- F6Ctrl- Alt-F1Ctrl- Alt-F6如果您当前在 X 中)更改活动的虚拟控制台来访问它们。

有关什么是 TTY 的更多信息,请参阅此问题,有关虚拟控制台的信息,请参阅此 Wikipedia 文章


小智 6

一台 Linux 机器(使用 SystemV 运行)定义了一个特殊文件,/etc/inittab它声明(但不仅限于)将运行多少个 *getty 进程及其相应的终端。例如,这是inittab我的 Gentoo Linux 机器上的摘录:

# TERMINALS
c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
c2:2345:respawn:/sbin/agetty 38400 tty2 linux
c3:2345:respawn:/sbin/agetty 38400 tty3 linux
c4:2345:respawn:/sbin/agetty 38400 tty4 linux
# Wanting only four terminals!
#c5:2345:respawn:/sbin/agetty 38400 tty5 linux
#c6:2345:respawn:/sbin/agetty 38400 tty6 linux
Run Code Online (Sandbox Code Playgroud)

是什么让agetty在第一终端上出现,例如,是tty1传递给说法agetty。您可以通过注释掉 中的相应行来限制您可以在其上输入登录名的控制台数量inittab,即在行的开头放置一个井号 (#)。

在我的机器上,我将它减少到只有 4 个可以登录的控制台。最好至少激活其中之一,以防图形登录管理器出现问题(如果您有的话)。