Linux

為什麼在某些 linux 發行版中預設啟用 systemd 服務,而在其他發行版中則沒有?

  • August 13, 2018

我注意到,在 Debian 中通過 apt-get 安裝軟體包後,systemd 中的服務預設啟用。但是,在其他發行版中,例如 Arch Linux,該軟體包中的服務預設是禁用的。

我的問題是:

  1. 這種行為取決於什麼?是包管理器中的某些設置還是包本身決定是否啟用它?

我的意思是在 Debian 上,它看起來像是systemctl enable docker.service在安裝後執行的。在 Arch-linuxdocker.service上禁用。

  1. 我怎樣才能改變它?

正如 systemd 預設簡介所述,這是分銷商做出的政策選擇:

在 Fedora 上,預設情況下所有服務都處於關閉狀態,因此安裝軟體包不會導致服務啟用(有一些例外)。在 Debian 上,預設情況下會立即啟用所有服務,因此安裝軟體包會立即啟用其服務。

理論上,systemd 發行版使用預設系統來決定是否應該在安裝包後啟用服務,systemctl preset而不是systemctl enable在包安裝後維護腳本中執行;並將本地覆蓋應用於分發策略就像在/etc/systemd/system-preset/. (Arch doco 在這里相當具有誤導性。通常的情況是創建一個單獨的本地預設文件來處理特定的服務。)

在實踐中,一些 systemd 發行版不為此使用預設系統,並且將本地覆蓋應用到 systemd 是使用發行版自己的機制的問題,如果它們實際上有這種機制的話。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/462275