Legen Sie die Umgebungsvariable für alle unter systemd laufenden Dienste fest

Legen Sie die Umgebungsvariable für alle unter systemd laufenden Dienste fest

Ich arbeite derzeit an einem Bereitstellungstool, das Umgebungsvariablen auf CentOS7-Rechnern konfigurieren wird. Derzeit weiß mein Tool, welche Variablen konfiguriert werden müssen, aber nicht, welche Dienste sie verwenden werden, da diese Dienste möglicherweise noch nicht einmal installiert sind.

Die Herausforderungen sind also:

  1. Während mein Tool ausgeführt wird, weiß ich nicht, welche Dienste welche Umgebungsvariablen benötigen (und daher wissen wir nicht, in welche .serviceDatei wir sie einfügen sollen).

  2. Soweit ich das beurteilen kann, laufen die Dienste nicht interaktiv und ohne Anmeldung, daher scheinen die anderen Optionen, eine Art „globale“ Umgebungsvariable zu erhalten, keine Lösung für dieses Problem zu sein (z. B. profile.d und dergleichen).

Gibt es eine andere Möglichkeit, diese Variablen beizubehalten, ohne wissen zu müssen, welcher Dienst auf sie verweist?

Antwort1

In /etc/systemd/system.confkönnen Sie verwenden, DefaultEnvironment=um Umgebungsvariablen festzulegen, die an alle Dienste übergeben werden.

Die Einzelheiten können Sie in nachlesen man systemd-system.conf.

Antwort2

Wie wäre es mit dieser Lösung: systemctl set-environment LD_LIBRARY_PATH=/usr/local/lib?

verwandte Informationen