#gunicorn #supervisord
Вопрос:
Я создаю приложение Flask и использую Nginx и Gunicorn в виртуальной среде. Когда я запускаю Gunicorn, gunicorn app:app
все работает нормально. Затем, когда я активирую Супервизора, чтобы держать gunicorn активным, он выдает мне ошибку 500. Я читаю в своем журнале в var/log/, что ошибка возникает, когда я пытаюсь открыть файл, который должен был быть создан после subprocess.run(command, capture_output=True, shell=True)
, поэтому эта строка выполняется неправильно.
Есть ли альтернатива супервизору, чтобы мое приложение работало, когда моя замазка закрыта?
Спасибо.
Комментарии:
1. После долгих исследований я обнаружил, что можно использовать systemd, Upstart, Procfile и Runit, вот документация. docs.gunicorn.org/en/stable/deploy.html . Тем не менее, я хотел найти более простой способ, который есть у гуникорна. когда вы звоните в gunicorn, например: приложение gunicorn:приложение. Вы можете просто использовать —daemon. Таким образом, вы можете создать приложение gunicorn:приложение-демон. Это приведет к тому, что ваша система продолжит работать. Возможно, это не лучший вариант, но, поскольку я все еще нахожусь в разработке, этого достаточно.
Ответ №1:
Я нашел ответ здесь.
https://docs.gunicorn.org/en/stable/deploy.html
В нем говорится, что одним из хороших вариантов является использование Runit.
Редактировать:
В итоге я использовал функцию Gunicorn под названием —deamon. Это похоже и делает все намного проще.