我目前正在开发一个部署工具,它将在 CentOS7 机器上配置环境变量。就目前情况而言,我的工具知道需要配置哪些变量,但不知道哪些服务将使用它们,因为这些服务可能尚未安装。
所以挑战是:
在我的工具运行时,我不知道哪些服务需要哪些环境变量(因此我们不知道
.service
将它们放入哪个文件中)据我所知,服务以非交互式非登录方式运行,因此获取某种“全局”环境变量的其他选项似乎不是解决此问题的方法(即 profile.d 之类的事情)
是否有另一种方法可以保留这些变量,而无需知道哪些服务将引用它们?
答案1
在 中/etc/systemd/system.conf
,您可以用来DefaultEnvironment=
设置传递给所有服务的环境变量。
您可以阅读有关详细信息man systemd-system.conf
。
答案2
这个解决方案怎么样:systemctl set-environment LD_LIBRARY_PATH=/usr/local/lib
?