La invocación explícita del servicio systemd no tiene en cuenta EnvironmentFile

La invocación explícita del servicio systemd no tiene en cuenta EnvironmentFile

Tengo el siguiente systemdarchivo de unidad

$ 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

Estoy usando el formato de redirección para registros dado que el mío systemdes bastante antiguo ( 232)

Quiero invocar este servicio vía systemd runasí que estoy escribiendo

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

Sin embargo, veo en mis registros de ejecución que

a) EnvironmentFile = /etc/myservice/configno se tiene en cuenta en absoluto

b) no se crean registros en/var/log/myservice/

¿Tienen algún sentido estas cuestiones?

Respuesta1

systemd-runno inicia el servicio especificado en /etc/systemd/system/myservice.service, simplemente se ejecuta /usr/local/bin/myserviceen una unidad transitoria, por eso la unidad se llama run-rac9ffa945b374f2fa8a8273567427005.service, no myservice.service.

Para ejecutar /etc/systemd/system/myservice.service, use systemctl start myservice.service(después de ejecutar systemctl daemon-reloadsi acaba de escribir el archivo de la unidad).

información relacionada