假设我通过“目标”设置了两个不同的“运行级别” 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
所有服务文件中进行硬编码。
答案1
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.