systemd 的运行级别模式

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.servicebuz.serviceafter.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.

相关内容