为 systemd 下运行的所有服务设置环境变量

LAM*_*day 4 centos environment-variables systemd

我目前正在开发一个部署工具,它将在 CentOS7 机器上配置环境变量。就目前而言,我的工具知道需要配置哪些变量,但不知道哪些服务将使用它们,因为这些服务甚至可能尚未安装。

所以挑战是:

  1. 在我的工具运行时,我不知道哪些服务需要哪些环境变量(因此我们不知道.service将它们放入哪个文件中)

  2. 据我所知,服务以非交互式非登录方式运行,因此获取某种“全局”环境变量的其他选项似乎不是对此的解决方案(即 profile.d 之类的东西)

是否有另一种方法可以保留这些变量而无需知道哪些服务将引用它们?

Mar*_*erg 5

在 中/etc/systemd/system.conf,您可以使用DefaultEnvironment=设置传递给所有服务的环境变量。

您可以在 中阅读有关详细信息man systemd-system.conf