GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Variable im Befehlspfad für ExecStart im systemd-Dienst verwenden

Sie können im eigentlichen Befehl keine Variablen verwenden. systemd.service:

Der auszuführende Befehl muss ein absoluter Pfadname sein. Es darf Leerzeichen enthalten, aber Steuerzeichen sind nicht erlaubt.

Vielleicht möchten Sie es in einen Shell-Befehl packen (der die Parametererweiterung durchführt):

ExecStart=/bin/bash -c '/${TESTEXTSERVICESFILES}/syslog/bin/nxlog -c ${TESTCONFDATA}/syslog/nxlog.conf'

Statt Environment= , verwenden Sie EnvironmentFile= , um mehrere Umgebungsvariablen zu definieren.

[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/customsyslog
ExecStart=/bin/echo ${TESTEXTSERVICESFILES}/syslog/bin/nxlog $TESTCONFDATA

/etc/sysconfig/customsyslog würde key=value enthalten Paar, z. B.

TESTEXTSERVICESFILES=/opt/test/extservices
TESTCONFDATA=/storage/test/conf

Linux
  1. So legen Sie Umgebungsvariablen für einen systemd-Dienst in CentOS/RHEL 7 fest

  2. Beispiele für die Verwendung des Befehls tcpdump für die Netzwerkfehlerbehebung

  3. Listen Sie die Datei mit dem Befehl ls in Linux mit vollständigem Pfad auf

  4. Systemd:Sowohl After als auch Requires verwenden

  5. So begrenzen Sie den Speicher für einen von systemd verwalteten Dienst

Tipps zur Verwendung des Top-Befehls unter Linux

Verwenden von systemd-Funktionen zum Sichern von Diensten

So richten Sie die automatische Ausführung eines Python-Skripts mit Systemd ein

Verwendung von „${a:-b}“ für die Variablenzuweisung in Skripten?

Verwenden des Linux-Dirname-Befehls in Bash-Skripten

Verwenden von Umgebungsvariablen im cURL-Befehl - Unix