Systemd

systemd 的執行級別模式

  • February 1, 2019

假設我通過“目標”設置了兩個不同的“執行級別” 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.serviceadded to 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.

引用自:https://serverfault.com/questions/951919