為 systemd 下運行的所有服務設定環境變量

為 systemd 下運行的所有服務設定環境變量

我目前正在開發一個部署工具,它將在 CentOS7 機器上配置環境變數。就目前情況而言,我的工具知道需要配置哪些變量,但不知道哪些服務將使用它們,因為這些服務可能尚未安裝。

所以挑戰是:

  1. 在我的工具運行時,我不知道哪些服務需要哪些環境變數(因此我們不知道.service將它們放入哪個文件中)

  2. 據我所知,服務以非互動式非登入方式運行,因此獲取某種「全域」環境變數的其他選項似乎不是解決此問題的方法(即 profile.d 之類的事情)

是否有另一種方法可以保留這些變量,而無需知道哪些服務將引用它們?

答案1

在 中/etc/systemd/system.conf,您可以用來DefaultEnvironment=設定傳遞給所有服務的環境變數。

您可以閱讀有關詳細資訊man systemd-system.conf

答案2

這個解決方案怎麼樣:systemctl set-environment LD_LIBRARY_PATH=/usr/local/lib

相關內容