
Я хочу сделать что-то вроде этого:
[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
раскрывается оболочкой. systemd раскрывает такие переменные только если они представляют собой одно слово. Вы можете использовать , ${HOME}
чтобы systemd всегда заменяла его.