Супервізор: як додати до $ PATH


23

Я не можу зрозуміти, як додати до конфігурації програми нагляд за програмою за замовчуванням.

Я можу скинути шлях:

environment=PATH="/home/site/environments/master/bin"

Але коли я намагаюся:

environment=PATH="/home/site/environments/master/bin:$PATH"

Я бачу, що нагляд не оцінює $PATH.

Google чомусь не допомагає у цьому, я не можу повірити, що я перший, хто потребує цього.

Контроль за цим повинен мати підтримку, будь-яка ідея, що це таке?


1
@ascobol nope, я вже чітко прописав потрібний мені шлях
Проді

2
supervisordне запускайте оболонку для попередньої обробки змінних у конфігураційному файлі, тому ви не можете використовувати вирази оболонки для розширення змінних. Хоча є виправлення, яке дозволяє це робити, %($PATH)і це було обговорено у списках розсилки ще в 2011 році, але AFAIK він все ще не включений до основного дерева джерела. Як вирішення, ви можете створити скрипт, який буде налаштовувати середовище та виконувати команду, подану в аргументах. Тоді ви просто запускаєте сценарій з supervisordподібногоcommand /usr/local/bin/setup_env_master.sh program_name arguments
Дмитро Василянов

1
Існує суттєвий недолік рішення для обгортки оболонки - коли керівник спробує зупинити процес за допомогою INT або KILL, сигнал буде отриманий сценарієм bash, а не фактичною завершеною програмою. Це може привести (і в моєму випадку) до звисаючих процесів.
stoiczek

@stoiczek легко вирішити проблему. Використовуйте exec в кінці скрипту bash, не просто регулярно запускайте команду. Отже exec server --args. Ви бачите це незмінно на початкових роботах.
CameronNemo

Відповіді:


17

Ця функція нещодавно додана до Supervisor

оточення = PATH = "/ головна / сайт / оточення / master / bin:% (ENV_PATH) s"

https://github.com/Supervisor/supervisor/blob/master/supervisor/skel/sample.conf#L8

Дивіться також /programming/12900402/supervisor-and-environment-variables


Але його ще не було випущено (позначено тегами): github.com/Supervisor/supervisor/isissue/599
tersmitten

Це було позначено вчора: pypi.python.org/pypi/supervisor
tersmitten

1

Я переглянув документацію і погоджуюся з Дмитром.

Поточна відповідь: супервізор не робить цей каталог, але створити сценарій обгортки допоможе.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.