permitir $HOME env var en execstart en el archivo systemctl.service

permitir $HOME env var en execstart en el archivo systemctl.service

Quiero hacer algo como esto:

[Unit]
Description=ROT13 demo service
After=network.target
StartLimitIntervalSec=1

[Service]
Type=simple
User=oleg
ExecStart=$HOME/.local/bin/cprev-agent   # user the home env var

[Install]
WantedBy=multi-user.target

¿Hay alguna manera de usar una variable de entorno $HOME como lo hice allí o es necesario codificarla?

Respuesta1

Es posible que las versiones posteriores de systemd hayan cambiado esto, pero en aproximadamente 237 no está permitido $ni %en el programa, que también tiene que ser una ruta absoluta. Puedes solucionar esto, por ejemplo,

ExecStart=/usr/bin/bash -c 'exec $HOME/.local/bin/cprev-agent'

Aquí $HOMEel shell se expande. systemd solo expande dichas variables si son una sola palabra. Puedes usar ${HOME}para que systemd lo reemplace siempre.

información relacionada