Я создаю служебный файл для демона, и я хотел бы использовать переменные (в сценариях инициализации я использовал переменные среды) для определения некоторых параметров для выполняемых сценариев. Например, я хотел бы использовать 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}