Umgebungsvariablen eines Benutzers in systemd unit übernehmen

Hat man ein systemd unit/service file, welches Bestimmte Umgebungs Variablen des Benutzers übernehmen soll, kann man das entweder mit Environment="[…]" direktiven machen, oder mit EnvironmentFile=/pfad/zur/datei auf eine Datei referenzieren.

Noch einfacher ist es hingegen automatisch die Umgebungsvariablen des Benutzers (die etwa von .bash_profile oder .bashrc kommen) einzulesen.

Dies geht mit folgender ExecStart direktive:

[Service]
Type=simple
User=jdoe
Group=jdoe
ExecStart=/bin/bash -l -c 'exec "$@"' _ /pfad/zur/app arg1 arg2 ...

Damit hat der startende Service immer dieselbe Umgebung, wie ein Benutzer der sich einloggt.

Referenzen

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.