В надзорная документация утверждает, что
Никакая оболочка не выполняется супервизором, когда он запускает подпроцесс, поэтому переменные среды, такие как USER, PATH, HOME, SHELL, LOGNAME и т. Д., Не изменяются по сравнению с их значениями по умолчанию или иным образом переназначаются. (...) Если вам нужно установить переменные среды для конкретной программы, которые в противном случае могли бы быть установлены вызовом оболочки для конкретного пользователя, вы должны сделать это явно в параметре конфигурации environment = program.
Пример, который я воспроизвел в /etc/supervisor/conf.d/apache2.conf
:
[program:apache2]
command=/home/chrism/bin/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
user=chrism
environment=HOME=/home/chrism,USER=chrism
Тем не мение,
# supervisorctl reread
ERROR: CANT_REREAD: Unexpected end of key/value pairs
Удаление строки «среда» конфигурации apache2 не приводит к ошибкам синтаксического анализа для повторного чтения. Что тут скучно? Я использую супервизор 3.0a8-1 в Debian Squeeze и отмечу, что основной супервизор - 3.0a10; Я не могу найти ссылку на environment
добавлен с 3.0a8
http://supervisord.org/configuration.html#program-x-section-settings
говорит: "Значения, содержащие не буквенно-цифровые символы, следует заключать в кавычки"