Назад | Перейти на главную страницу

Шаблон уровня выполнения для systemd

Предположим, у меня есть два разных «уровня выполнения», настроенных через «цели» в systemd - before.target (включен минимальный набор служб начальной загрузки) и after.target (запустить все).

Прямо сейчас я делаю это, когда хочу переключиться с «до» на «после»:

# Set default to after.target. 
/usr/bin/systemctl set-default after.target 1>/dev/null

# Before reboot make sure essential services are enabled
/usr/bin/systemctl enable foo bar baz buz 1>/dev/null

# Reboot
reboot

Как я могу получить foo.service, bar.service, baz.service, и buz.service добавлен к after.target когда они установлены?

Если я хочу настроить boz бежать, когда after.target включен, есть ли способ сделать это, не изменяя /usr/lib/systemd/system/after.target файл?

В старых системах с chkconfig я бы просто включил службы начальной загрузки, скажем, на уровне выполнения 4, а затем включил все другие службы на уровне выполнения 3, но у меня возникли проблемы с выяснением, как это сделать здесь, и я бы предпочел не жестко кодировать в Wanted-By: after.target во всех моих служебных файлах.

Это предлагается на странице руководства systemctl:

systemctl add-wants after.target foo.service

На странице руководства указано:

       add-wants TARGET UNIT..., add-requires TARGET UNIT...
           Adds "Wants=" or "Requires=" dependencies, respectively, to the
           specified TARGET for one or more units.

           This command honors --system, --user, --runtime and --global in a
           way similar to enable.