Supervisor, похоже, не выбирает параметр каталога
После обновления с supervisor 3.0 до 3.2 (произошло при обновлении 14.04 до 16.04) наша конфигурация, которую мы используем для supervisor, похоже, больше не работает должным образом.
Конфигурация супервизора по умолчанию полностью не изменилась, и единственным важным параметром здесь является:
[include]
files = /etc/supervisor/conf.d/*.conf
в conf.d
в каталоге есть два файла; тот, который используется только в этой системе, и тот, который символически связывается с каталогом приложения, поэтому мы можем использовать одну и ту же конфигурацию в разных установках.
000-родовой-environment.conf
[supervisord]
directory = /home/applicationuser/domains/<domain>/current
001-Programs.conf (символическая ссылка на /home/applicationuser/domains//current/supervisord.conf)
[program:push-notifications]
rabbitmq:consumer device_notifications --env=prod --no-debug -m 100
autorestart = true
user = applicationuser
command = bin/console rabbitmq:consumer device_notifications --env=prod --no-debug -m 100
Когда я запускаю супервизор, в журнале говорится только:
supervisord[11599]: 2018-06-21 08:00:16,549 INFO spawnerr: can't find command 'bin/console'
Он пытается несколько раз, а затем решает перейти в состояние FATAL из-за повторных попыток. Эта настройка всегда работала для нас, но сейчас кажется, что она не работает. Я что-то пропускаю здесь? Я уже некоторое время ломаю голову над этим вопросом, и я мог бы взглянуть на это свежим взглядом.
1 ответ
Я в конце концов нашел проблему. В документации я заметил, что параметр directory используется только при демонизации.
В supervisor 3.0 это было по умолчанию; очевидно после обновления ubuntu и supervisor это поведение по умолчанию изменилось, и supervisor запустился с флагом -n в командной строке.
Снятие этого флага в systemd по какой-то причине привело к сбою демона, в то время как запуск supervisord из командной строки работал отлично. Выбрав легкий путь, потому что я хотел продолжить с более важными вещами, я понизил супервизор до 3.0, и все снова заработало, как обаяние.