Установить переменную среды для всех служб, работающих под управлением 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?

Связанный контент