Назад | Перейти на главную страницу

Как использовать переменные в служебном файле systemd?

Я создаю служебный файл для демона, и я хотел бы использовать переменные (в сценариях инициализации я использовал переменные среды) для определения некоторых параметров для выполняемых сценариев. Например, я хотел бы использовать 2 параметра $ PARAM1 $ PARAM2:

[Unit]
Description=my daemon
After=network.target

[Service]
ExecStart=/usr/local/bin/daemon1
PIDFile=/var/run/daemon1.pid
EnvironmentVariable=PARAM1=123
EnvironmentVariable=PARAM2=444
ExecStartPre=-/usr/bin/wget -O - --post-data=key1=$PARAM1&key2=$PARAM2 http://192.168.1.2/log.php
ExecStopPost=-/usr/bin/wget -O - --post-data=key1=$PARAM1 http://192.168.1.2/log.php
Type=simple

[Install]
WantedBy=multi-user.target

Излишне говорить, что этот пример не работает. Возможно ли что-то подобное с помощью systemd? Какая параметризация команд exec возможна?

Директива Environmentне EnvironmentVariable.

Environment=

Устанавливает переменные среды для выполняемых процессов. Принимает список назначений переменных, разделенных пробелами. Эта опция может быть указана более одного раза, и в этом случае будут установлены все перечисленные переменные. Если одна и та же переменная установлена ​​дважды, более поздняя настройка переопределит более раннюю настройку.

Environment=PARAM1=123
Environment=PARAM2=444

ИЛИ

Environment=PARAM1=123 PARAM2=444

Не уверен, но, возможно, вам придется использовать их в фигурных скобках. {}:

--post-data=key1=${PARAM1}&key2=${PARAM2}