为了学习,我想从命令提示符启动一个新终端(假设是 tty10)。我知道我可以运行,但我现在想手动运行它。我检查了 systemd 服务 getty@ 它使用以下命令行:sudo systemctl start [email protected]
/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
因此,尝试从终端(tty1)复制它,我运行了以下命令:
sudo /sbin/agetty -o '-p -- <username>' --noclear tty10 linux
它确实在终端 10 启动了一个新的登录提示,我输入用户名,但它从不提示输入密码。此外,当我返回 1 号航站楼时,我看到它已注销。我究竟做错了什么?
答案1
不幸的是,agetty
应该在inittab
或作为systemd
单位坚持下去。
至于agetty
在 shell 中,它确实不是设计来在前台运行并控制其他终端的,正如另一篇文章中提到的这里。
将其作为一个systemd
单元执行将使其能够稳定地持续存在,并且不会关闭连接或用于执行的父 shell agetty
。
如果您只想检查是否能够在服务器和客户端之间建立连接,可以执行以下操作:
- 在服务器上:
# /sbin/agetty -L 115200 ttyS0 vt102
- 在客户端:
# screen /dev/ttyS0 115200
/dev/ttyS0
你的串行连接在哪里。如果出现登录提示,则表明连接良好。为了让它持续存在,必须是一个systemd
整体。欲了解更多信息: