在带有 的 Debian Jessie 系统上systemd
,如何配置终端,以便Press enter to activate this console
显示类似的消息,并且在按 Enter 之前不会出现登录提示?
通过inittab
配置就可以做到这一点askfirst
,但是如何做到呢systemd
?
如果可能的话我更喜欢调整适当的配置文件,而不是systemd
直接弄乱现有的单元文件 - 就像有的那样,logind.conf
但不幸的是,配置文件在这种情况下不会有帮助。
答案1
可以通过配置...来
/etc/inittab
完成此操作askfirst
事实上,它不能。这是init
Linux System 5 克隆中不存在的BusyBox机制,这是它们的配置文件不相同的init
几种方式之一。/etc/inittab
在 systemd Linux 操作系统上执行类似操作的方法取决于实际执行的操作。尽管您显然在这里,但不一定仅将其用于交互式终端登录。
的一种常见用途askfirst
是简单地用于没有为未使用的虚拟终端运行getty
+系统login
。 systemd 不需要为此进行非默认设置。使用 systemd,logind
打包的服务已经安排为仅在虚拟终端切换到前台时按需启动服务。终端登录不在尚未切换到的虚拟终端(并且不是第一个或“保留”虚拟终端)上运行。autovt@N.service
稍微不同的语义,在切换到虚拟终端之前不启动getty
+系统login
并按下回车键,稍微难以实现,因为它们涉及打开一个getty
选项或插入一个程序来打印一条消息并在链接到 之前等待一行输入getty
。
只有少数getty
程序有这样的选项,例如 Peter Orbaek 的agetty
程序有--wait-cr
.大多数(例如菲利克斯·冯·莱特纳(Felix von Leitner)fgetty
和弗洛里安·拉罗什(Florian La Roche mingetty
))都没有。其余的(例如 Gert Doering 的mgetty
)需要调制解调器及其所有附件——当然虚拟终端没有这些,这使得使它们适应虚拟终端的使用有些棘手。
链式加载相当于--wait-cr
在虚拟终端上,一个简单的程序,打印一条消息,然后从终端读取一行(以规范模式),然后链式加载,是一个相当简单的程序。
使用此类选项、使用不同的getty
程序或在“之前”插入实用程序链加载程序,都涉及在withgetty
下写入一个或多个单元文件覆盖文件(更改设置)或简单地指向自己设计的本地单元文件于。/etc/systemd/system
systemctl edit
ExecStart
[email protected]
[email protected]
进一步阅读
- https://unix.stackexchange.com/a/194218/5132
- 乔纳森·德博因·波拉德 (2015)。
login-prompt
。 小吃指南。 JdeBP 的软件。 - https://askubuntu.com/a/659268/43344
- https://unix.stackexchange.com/a/233855/5132
- 沃纳·芬克和卡雷尔·扎克。
agetty
。 Unbuntu 15.04 手册页。