
Ich möchte so etwas machen:
[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
gibt es eine Möglichkeit, eine $HOME-Umgebungsvariable zu verwenden, wie ich es dort getan habe, oder muss sie fest codiert werden?
Antwort1
Spätere Versionen von systemd haben dies möglicherweise geändert, aber in 237 oder so ist es nicht mehr erlaubt $
oder %
im Programm, das ebenfalls ein absoluter Pfad sein muss. Sie können dies umgehen, indem Sie beispielsweise
ExecStart=/usr/bin/bash -c 'exec $HOME/.local/bin/cprev-agent'
Hier $HOME
wird die von der Shell erweitert. systemd erweitert solche Variablen nur, wenn sie aus einem einzigen Wort bestehen. Sie können verwenden, ${HOME}
damit systemd sie immer ersetzt.