システムサービスを明示的に呼び出すと、環境ファイルは考慮されません。

システムサービスを明示的に呼び出すと、環境ファイルは考慮されません。

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

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

このサービスをで呼び出したいので、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/myservicerun-rac9ffa945b374f2fa8a8273567427005.servicemyservice.service

を実行するには(ユニットファイルを作成したばかりの場合は実行後)を/etc/systemd/system/myservice.service使用してください。systemctl start myservice.servicesystemctl daemon-reload

おすすめ記事