补充说明
getty(get tty)负责在虚拟控制台或串口上打开一个 tty、输出登录提示并启动 login 程序,是系统启动后获得交互式登录界面的关键一环。现代 Linux 上通常由 util-linux 的 agetty 提供该功能,getty 往往是到 agetty 的符号链接或兼容入口。
它一般由 init 系统(systemd 的 getty@tty1.service、serial-getty@ttyS0.service)自动拉起,不需要手工执行。只有在调试串口控制台、救援模式或自建 initramfs 时,才会直接调用。
注意:直接在前台运行 getty 会抢占当前终端;测试串口登录时应使用另一条串口线或 -n 等选项谨慎操作。getty 本身不校验密码,认证由它启动的 login 完成。
语法
getty [选项] 端口 [波特率...] [终端类型]
选项
以下为 agetty 常用选项(getty 兼容入口一般同样接受):
-8:假定终端为 8 位模式,不重置奇偶校验-a 用户/--autologin 用户:自动以指定用户登录,跳过密码-f 用户:同--autologin(部分版本)-h:启用硬件流控(RTS/CTS)-l 程序:指定替代login的登录程序-n/--no-issue:不显示/etc/issue-t 秒:登录提示超时时间-w/--wait-cr:等待回车后再显示登录提示--noclear:启动时不清屏-L:本地线路模式(不检测调制解调器信号)
实例
# 查看当前系统的 getty 服务
systemctl status getty@tty1.service
# 在 ttyS0 上手动启动一个串口登录提示(115200 波特率)
sudo /sbin/agetty -L 115200 ttyS0 vt100
# 临时启用串口控制台服务
sudo systemctl enable --now serial-getty@ttyS0.service
# 查看串口登录服务日志
journalctl -u serial-getty@ttyS0.service -b
在 GRUB 中启用串口控制台的常见写法是给内核参数追加 console=ttyS0,115200n8,同时保留 console=tty0,这样本地与串口都能看到输出。