
Tengo el siguiente systemd
archivo 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 systemd
es bastante antiguo ( 232
)
Quiero invocar este servicio vía systemd run
así 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/config
no se tiene en cuenta en absoluto
b) no se crean registros en/var/log/myservice/
¿Tienen algún sentido estas cuestiones?
Respuesta1
systemd-run
no inicia el servicio especificado en /etc/systemd/system/myservice.service
, simplemente se ejecuta /usr/local/bin/myservice
en 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-reload
si acaba de escribir el archivo de la unidad).