Назад | Перейти на главную страницу

Supervisor требует перезагрузки для правильной работы приложения flask

Когда мой сервер (CentOS 7, размещенный на бродячей виртуальной машине) перезагружается, мое приложение Python Flask (обслуживаемое Gunicorn с использованием nginx в качестве обратного прокси) выдает внутренние ошибки сервера (согласно трассировкам стека, которые я получаю, оно не может найти шаблонные файлы HTML даже ...) до тех пор, пока sudo supervisorctl reload выпущен. После этого приложение работает нормально, и у меня все в порядке, но теперь это не годится, не так ли?

Я подозреваю, что это состояние гонки (может быть, между супервизором и пулеметчиком?). Я пробовал добавить сон в command в конкретной программе .ini файл, но это ничего не помогло.

Кто-нибудь еще сталкивался с чем-то подобным? Если нет, то кто-нибудь знает, как отложить запуск всей утилиты супервизора (а не только одной конкретной программы)?

Для справки вот что содержимое моего .ini файл выглядит так:

[program:test]
command=/bin/gunicorn -b localhost:8000 -w 2 the_app:app
directory=/var/www/test
user=vagrant
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true

Опять же, это работает нормально после перезагрузки супервизора, он просто не запускается правильно (предположительно из-за какого-то состояния гонки).

Для полноты: добавление условия сна вызвало .ini файл, чтобы он выглядел так:

[program:test]
command=bash -c "sleep 10 && exec /bin/gunicorn -b localhost:8000 -w 2 the_app:app"
directory=/var/www/test
user=vagrant
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true

Помимо того, что проблема не решена (смеется), это кажется грязным, поэтому я решительно предпочитаю не делать что-то подобное.

Заранее благодарим за любые рекомендации.