Я нахожусь в процессе переноса всех пользовательских сценариев выскочки в systemd. Я наткнулся на сценарий, который использует несколько сервисов. Я не могу понять правильный синтаксис для обработки этого, или мне нужно просто создать отдельный .оказание услуг
юнит-файлы для каждого. Возможно ли это для шаблонов? Документация по модулю SystemD не дает мне много информации, за исключением того, как создать файл шаблона (добавляя @
к названию) и как использовать %я
для обозначения экземпляра.
Оригинальный выскочка дилер-start-all.conf
журнал консоли
старт у дилера
сценарий
объявлять -aдилеры=("Часовой пояс" "Тайм-аут" "Запрос" "Отказ")
для типа "${дилеры[@]}"
делать
если список initctl | grep "^дилер ($тип)"
тогда
стоп-дилер type=$type
фи
тип стартового дилера=$type
echo "тип дилера $ запущен"
сделано
конец скрипта
Другая его часть, дилер.conf
, должно быть довольно резко и сухо, используя %я
в ExecStart
часть, например:
ExecStart=/usr/bin/php -f /path/to/dealer%i.php
журнал консоли
экземпляр $тип
остановка у дилера
сценарий
sudo -u root php -f /path/to/dealer$type.php
конец скрипта
пост-стоп скрипт
если [ -z "$UPSTART_STOP_EVENTS" ]
тогда
echo "dealer$type остановлен в `дата +"%F %T.%N"` Запустите 'initctl Emit Dealer-Stop', а затем 'initctl Emit Dealer-Start' на `hostname`, чтобы снова запустить его." | mail -s "dealer$type Stopped" [email protected]
еще
echo "dealer$type был остановлен вручную в `дата +"%F %T"`."
фи
конец скрипта
Я просто не понимаю, как перевести массив в первом в системную версию? Должен ли я разбить их на отдельные файлы модулей? Если это так, то это не проблема и может быть легко сделано. Я просто не уверен в синтаксисе (если он существует), чтобы делать то, что делает первый.