Я не можу зрозуміти, як додати до конфігурації програми нагляд за програмою за замовчуванням.
Я можу скинути шлях:
environment=PATH="/home/site/environments/master/bin"
Але коли я намагаюся:
environment=PATH="/home/site/environments/master/bin:$PATH"
Я бачу, що нагляд не оцінює $PATH
.
Google чомусь не допомагає у цьому, я не можу повірити, що я перший, хто потребує цього.
Контроль за цим повинен мати підтримку, будь-яка ідея, що це таке?
1
@ascobol nope, я вже чітко прописав потрібний мені шлях
—
Проді
supervisord
не запускайте оболонку для попередньої обробки змінних у конфігураційному файлі, тому ви не можете використовувати вирази оболонки для розширення змінних. Хоча є виправлення, яке дозволяє це робити, %($PATH)
і це було обговорено у списках розсилки ще в 2011 році, але AFAIK він все ще не включений до основного дерева джерела. Як вирішення, ви можете створити скрипт, який буде налаштовувати середовище та виконувати команду, подану в аргументах. Тоді ви просто запускаєте сценарій з supervisord
подібногоcommand /usr/local/bin/setup_env_master.sh program_name arguments
Існує суттєвий недолік рішення для обгортки оболонки - коли керівник спробує зупинити процес за допомогою INT або KILL, сигнал буде отриманий сценарієм bash, а не фактичною завершеною програмою. Це може привести (і в моєму випадку) до звисаючих процесів.
—
stoiczek
@stoiczek легко вирішити проблему. Використовуйте exec в кінці скрипту bash, не просто регулярно запускайте команду. Отже
—
CameronNemo
exec server --args
. Ви бачите це незмінно на початкових роботах.