A invocação explícita do serviço systemd não leva em consideração EnvironmentFile

A invocação explícita do serviço systemd não leva em consideração EnvironmentFile

Eu tenho o seguinte systemdarquivo de unidade

$ 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

Estou usando o formato de redirecionamento para logs visto que meu systemdé bem antigo ( 232)

Quero invocar este serviço, systemd runentão estou digitando

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

No entanto, vejo em meus logs de execução que

a) EnvironmentFile = /etc/myservice/confignão é levado em consideração

b) nenhum log é criado em/var/log/myservice/

Essas questões fazem algum sentido?

Responder1

systemd-runnão inicia o serviço especificado em /etc/systemd/system/myservice.service, apenas roda /usr/local/bin/myserviceem uma unidade transitória, é por isso que a unidade é chamada run-rac9ffa945b374f2fa8a8273567427005.service, não myservice.service.

Para executar /etc/systemd/system/myservice.service, use systemctl start myservice.service(depois de executar systemctl daemon-reloadse você acabou de escrever o arquivo da unidade).

informação relacionada