Answers:
真正不需要禁用“额外” TTY,因为根据systemd
需要生成了getty:man systemd-getty-generator
有关详细信息,请参见。请注意,默认情况下,仅针对VT6以下的VT(模拟传统Linux系统)才执行此自动生成。
正如Lennart在博客文章1中所说:
为了使事情更有效率,现在仅按需启动登录提示。当您切换到VT时,getty服务将实例化为getty @ tty2.service,getty @ tty5.service等。由于我们不再需要无条件地启动getty流程,因此这可以节省一些资源,并使启动速度更快。
如果您确实希望配置特定数量的盖蒂,则可以logind.conf
使用相应的条目进行修改,在此示例中:3
NAutoVTs=3
1.实际上,为管理员准备的整个职位系列(目前为18个职位)非常值得一读。
在基于Debian的系统上,如果您刚刚构建了服务器(没有dbus服务),则有一个文件会导致启动时启动5个额外的getty:
/lib/systemd/system/getty.target.wants/getty-static.service
在其中说:
[Service]
Type=oneshot
ExecStart=/bin/systemctl --no-block start getty@tty2.service getty@tty3.service getty@tty4.service getty@tty5.service getty@tty6.service
RemainAfterExit=true
只需删除此文件,即可阻止产生多余的getty。如果您只想产生一个额外的getty(用于2个virt控制台),可以随意缩短列表。请注意,您会在tty1上自动获得一个,因此您始终至少有一个虚拟控制台。
dpkg-divert
请先使用。但是,还有一个systemd原生的方式把它弄出来的方式-运行sudo systemctl mask getty-static.service
,并建立自己的/etc
sudo systemctl edit getty-static.service
,这将创建一个覆盖文件优先于/lib
一个
要禁用特定TTY 4-6上的getty,同时可能使1-3和7-9正常工作,请运行:
for i in {4..6}; do
systemctl mask getty@tty${i}.service
done
mask
创建/etc/systemd/system/{name} -> /dev/null
有效地禁用服务的符号链接。尝试通过运行它将systemctl start
显示错误Failed to start NAME.service: Unit NAME.service is masked.
如果您有A.service Wants=masked.service
,那么start A
它将成功但还会在日志中生成依赖项启动错误。
如果您有B.service Requires=masked.service
,那么start B
也会失败。
是的,necroanswer。干杯。