permitir $HOME env var em execstart no arquivo systemctl.service

permitir $HOME env var em execstart no arquivo systemctl.service

Eu quero fazer algo assim:

[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

existe uma maneira de usar um $HOME env var como eu fiz lá ou ele precisa ser codificado?

Responder1

Versões posteriores do systemd podem ter mudado isso, mas em 237 ou mais você não tem permissão $ou %no programa, que também deve ser um caminho absoluto. Você pode contornar isso, por exemplo,

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

Aqui o $HOMEé expandido pelo shell. O systemd só expande essas variáveis ​​se elas forem uma única palavra. Você pode usar ${HOME}para sempre fazer com que o systemd o substitua.

informação relacionada