为什么 /etc/init/tty?.conf 在 Ubuntu 16.04 中被忽略?

为什么 /etc/init/tty?.conf 在 Ubuntu 16.04 中被忽略?

使用 Ubuntu 14.04 时,我曾经习惯/etc/init/tty2.conf在此虚拟终端中启动一个程序。但升级到 Ubuntu 16.04 后,这些文件似乎被忽略了。无论我如何修改,虚拟终端最终都会在启动后运行 getty。

我知道 Ubuntu 16.04 包含一个systemd并排upstart子系统。但由于/etc/init/tty?.conf已安装的系统中默认存在文件,我希望它们能够得到尊重。

我是否应该启用某些 systemd 服务来恢复旧行为(就像所做的那样/etc/rc.local)?

答案1

据我所知,Ubuntu 16.04 包含一个与 upstart 子系统并排的 systemd。

在默认的 16.04 中,Upstart 的唯一作用是用户会话。它与系统初始化无关,后者完全由 systemd 处理。可能可以强制 Upstart 为init,但不支持。

因此它们/etc/init/*.conf会被忽略(可能只是残留文件)。如果您想配置 TTY2,则必须编辑 systemd 服务。请参阅我的帖子如何创建 ubuntu server 16.04 自动登录?如何覆盖或配置 systemd 服务?

答案2

感谢接受答案的说明,我完成了我的目标/etc/systemd/system/[email protected]/override.conf

[Unit]
Description=Vim for notes on %I

[Install]
WantedBy=graphical.target


[Service]
User=my_user
Group=my_group
ExecStart=
ExecStart=/bin/bash -lc '/usr/bin/vim /media/notes/note_`LC_ALL=us_US.utf8 /bin/date "+%%b%%g"`'
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit

注意事项:

  • 必须转义%%%,否则它们已被 systemd 变量替换

  • 没有获得没有Standard*语句的输入/输出流[Service]

相关内容