Beim expliziten Aufruf des systemd-Dienstes wird EnvironmentFile nicht berücksichtigt.

Beim expliziten Aufruf des systemd-Dienstes wird EnvironmentFile nicht berücksichtigt.

Ich habe die folgende systemdUnit-Datei

$ cat /etc/systemd/system/myservice.service

[Unit]
Description = My Service

[Service]
ExecStart = /bin/sh -c 'exec /usr/local/bin/myservice [arguments] >>/var/log/myservice/log.log 2>>/var/log/myservice/err.log'
EnvironmentFile = /etc/myservice/config
User = someuser
Group = somegroup

[Install]
WantedBy = multi-user.target

Ich verwende das Umleitungsformat für Protokolle, da meins systemdziemlich alt ist ( 232)

Ich möchte diesen Dienst aufrufen über, systemd runalso tippe ich

sudo systemd-run myservice
Running as unit: run-rac9ffa945b374f2fa8a8273567427005.service

Ich sehe jedoch in meinen Ausführungsprotokollen, dass

a) EnvironmentFile = /etc/myservice/configwird überhaupt nicht berücksichtigt

b) Es werden keine Protokolle erstellt in/var/log/myservice/

Sind diese Fragen sinnvoll?

Antwort1

systemd-runstartet den in angegebenen Dienst nicht /etc/systemd/system/myservice.service, er wird nur /usr/local/bin/myservicein einer vorübergehenden Einheit ausgeführt, daher heißt die Einheit run-rac9ffa945b374f2fa8a8273567427005.serviceund nicht myservice.service.

Zum Ausführen /etc/systemd/system/myservice.serviceverwenden Sie systemctl start myservice.service(nach „Ausführen“, systemctl daemon-reloadwenn Sie gerade die Unit-Datei geschrieben haben).

verwandte Informationen