Согласно документам systemd, я должен использовать Окружающая среда =
, но я
я не уверен, как это сделать. Допустим, у меня есть файл модуля systemd.
называется тест-systemd-params.service
:
Это пример использования Окружающая среда =
Description=Systemd Params Test
Хочет=network-online.target
After=network-online.target
[Оказание услуг]
Окружающая среда = «MOD = foo» «REM = бар»
ExecStart=/usr/bin/php -f /path/to/test_systemd.php --mod ${MOD} --rem ${REM}
StandardOutput=файл:/var/log/test-multiple-systemd.log
[Установить]
#Запустить после загрузки
WantedBy=многопользовательская.цель
Это не то, что вы ищете, потому что переменные являются статическими значениями.
я нашел это пример, и он имеет два Среда
строк, но одна из них является статическим значением! я нуждаюсь два динамические значения, такие как:
Фрагмент примера, который вы даете, относится к шаблоны услуг. Вы можете пройти только одна переменная Сюда. Службы systemd могут принимать один аргумент с помощью синтаксиса «service@argument.service».
Вот пример реализации
Description=Systemd Params Test
Хочет=network-online.target
After=network-online.target
[Оказание услуг]
Окружающая среда=MOD=%i
Окружающая среда=REM=бар
ExecStart=/usr/bin/php -f /path/to/test_systemd.php --mod ${MOD} --rem ${REM}
StandardOutput=файл:/var/log/test-multiple-systemd.log
[Установить]
#Запустить после загрузки
WantedBy=многопользовательская.цель
Затем вы запускаете службы следующим образом:
systemctl запустить test-systemd-params@foo.service
systemctl запустить test-systemd-params@bar.service
Так что это все еще не совсем то, что вы ищете, потому что у вас все еще есть одна статическая переменная.
Единственный способ, которым я вижу (не испытано) для передачи нескольких переменных было бы использовать Файл Окружающей Среды =
директивы и отдельные файлы конфигурации с динамичный имя с помощью @аргумент
синтаксис
[Оказание услуг]
EnvironmentFile=/path/to/config/%i
ExecStart=/usr/bin/php -f /path/to/test_systemd.php --mod ${MOD} --rem ${REM}
StandardOutput=файл:/var/log/test-multiple-systemd.log
Пример файла конфигурации в /путь/к/конфигурации/
, скажем конф1
:
МОД=фу
REM=бар
Затем вы запускаете службы следующим образом:
systemctl запустить test-systemd-params@conf1.service
systemctl запустить test-systemd-params@conf2.service
...