
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.