systemd サービスの明示的な呼び出しでは EnvironmentFile が考慮されません

systemd サービスの明示的な呼び出しでは EnvironmentFile が考慮されません

次のsystemdユニットファイルがあります

$ 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

私のログはかなり古いので、リダイレクト形式を使用していますsystemd232

このサービスを呼び出したいので、systemd run次のように入力します

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

しかし、私の実行ログを見ると、

a)EnvironmentFile = /etc/myservice/config全く考慮されていない

b) ログは作成されません/var/log/myservice/

これらの問題には意味があるのでしょうか?

答え1

systemd-runは で指定されたサービスを開始せず/etc/systemd/system/myservice.service/usr/local/bin/myservice一時的なユニットで実行されるだけなので、ユニットは ではrun-rac9ffa945b374f2fa8a8273567427005.serviceなくと呼ばれますmyservice.service

を実行するには/etc/systemd/system/myservice.service、 を使用しますsystemctl start myservice.service(systemctl daemon-reloadユニット ファイルを書き込んだ直後の場合は を実行した後)。

関連情報