Establecer variables de entorno para todos los servicios que se ejecutan en systemd

Establecer variables de entorno para todos los servicios que se ejecutan en systemd

Actualmente estoy trabajando en una herramienta de implementación que configurará variables de entorno en máquinas CentOS7. Tal como están las cosas, mi herramienta sabe qué variables deben configurarse, pero no sabe qué servicios las utilizarán, ya que es posible que esos servicios ni siquiera estén instalados todavía.

Entonces los desafíos son:

  1. En el momento en que mi herramienta se está ejecutando, no sé qué servicios necesitan qué variables de entorno (y, por lo tanto, no sabemos en qué .servicearchivo colocarlos).

  2. Hasta donde yo sé, los servicios se ejecutan como no interactivos sin inicio de sesión, por lo que las otras opciones de obtener una especie de variable de entorno 'global' no parecen una solución para esto (es decir, perfil.d y ese tipo de cosas).

¿Existe otra forma de conservar estas variables sin necesidad de saber qué servicio hará referencia a ellas?

Respuesta1

En /etc/systemd/system.conf, puede utilizar DefaultEnvironment=para configurar las variables de entorno que se pasan a todos los servicios.

Puedes leer sobre los detalles en man systemd-system.conf.

Respuesta2

¿Qué pasa con esta solución systemctl set-environment LD_LIBRARY_PATH=/usr/local/lib?

información relacionada