使用 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]