
Ich habe die folgende systemd
Unit-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 systemd
ziemlich alt ist ( 232
)
Ich möchte diesen Dienst aufrufen über, systemd run
also tippe ich
sudo systemd-run myservice
Running as unit: run-rac9ffa945b374f2fa8a8273567427005.service
Ich sehe jedoch in meinen Ausführungsprotokollen, dass
a) EnvironmentFile = /etc/myservice/config
wird überhaupt nicht berücksichtigt
b) Es werden keine Protokolle erstellt in/var/log/myservice/
Sind diese Fragen sinnvoll?
Antwort1
systemd-run
startet den in angegebenen Dienst nicht /etc/systemd/system/myservice.service
, er wird nur /usr/local/bin/myservice
in einer vorübergehenden Einheit ausgeführt, daher heißt die Einheit run-rac9ffa945b374f2fa8a8273567427005.service
und nicht myservice.service
.
Zum Ausführen /etc/systemd/system/myservice.service
verwenden Sie systemctl start myservice.service
(nach „Ausführen“, systemctl daemon-reload
wenn Sie gerade die Unit-Datei geschrieben haben).