
我想做這樣的事情:
[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
有沒有辦法像我一樣使用 $HOME 環境變量,或者是否需要對其進行硬編碼?
答案1
較高版本的 systemd 可能已經改變了這一點,但在 237 左右,您不允許$
或%
在程式中,這也必須是絕對路徑。例如,您可以透過以下方式解決這個問題:
ExecStart=/usr/bin/bash -c 'exec $HOME/.local/bin/cprev-agent'
這裡$HOME
是由 shell 擴展的。只有當此類變數是單字時,systemd 才會對其進行擴展。您可以使用${HOME}
總是讓 systemd 替換它。