Почему /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)?

2 ответа

Решение

Я понимаю, что Ubuntu 16.04 включает systemd рядом с подсистемой upstart.

Единственная роль Upstart в 16.04 по умолчанию - для пользовательских сессий. Это не имеет ничего общего с системным init, который полностью обрабатывается systemd. Может быть возможно заставить Upstart быть init, но это не поддерживается.

/etc/init/*.conf поэтому игнорируются (и, вероятно, являются просто остаточными файлами). Если вы хотите настроить TTY2, вам придется редактировать сервисы systemd. Смотрите мои посты в разделе Как создать Ubuntu Server 16.04 Autologin? и как мне переопределить или настроить системные сервисы?

Благодаря инструкциям на принятый ответ, выполнил мою цель с /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

Предостережения:

  • должен был бежать % как %%в противном случае они были заменены на системные переменные

  • не получил потоки ввода / вывода без Standard* заявления в [Service]

Другие вопросы по тегам