Предположим, у меня есть два разных «уровня выполнения», настроенных через «цели» в 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.