Shell-Script
systemd 單元文件目錄是否有像 $HOME 這樣的 linux 全域變數?
我正在建構基於 bash 腳本的安裝程序,該安裝程序需要設置一個 systemd 單元等。我可以硬編碼典型的 systemd 單元文件位置,例如
/etc/systemd/system
or/usr/lib/systemd/system
但我希望能夠讓腳本能夠檢測系統的首選位置以添加新的單元文件和服務。我當然可以通過使用
find
和查找現有的服務單元文件來做到這一點,但我想避免增加太多的複雜性,如果已經有一個現有的全域變數(比如$HOME
)我可以呼叫
據我所知,所有系統都是一樣的。手冊頁提供了許多見解 - https://www.freedesktop.org/software/systemd/man/systemd.unit.html
System Unit Search Path /etc/systemd/system.control/* /run/systemd/system.control/* /run/systemd/transient/* /run/systemd/generator.early/* /etc/systemd/system/* /etc/systemd/system.attached/* /run/systemd/system/* /run/systemd/system.attached/* /run/systemd/generator/* … /usr/lib/systemd/system/* /run/systemd/generator.late/*
如果您正在建構服務單元文件,那麼您可能應該將這些文件安裝在 中
/etc/systemd/system
,其中包含“管理員創建的系統單元”的描述。程式碼中有幾個地方使得這些路徑中的大多數看起來不太可能被更改,並且
/etc/systemd/system
看起來是硬編碼的