为 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

相关内容