Подтвердить что ты не робот

Как вы демонизируете приложение Flask?

У меня есть небольшое приложение, написанное на Python с использованием Flask. Прямо сейчас я запускаю его под nohup, но я бы хотел его демонизировать. Каков правильный способ сделать это?

4b9b3361

Ответ 1

Существует несколько способов развертывания проекта Flask. Развертывание с помощью gunicorn может быть самым простым, установить guniororn, а затем:

gunicorn project:app --daemon

Хотя вы, вероятно, хотите использовать супервизор или что-то в этом роде для наблюдения за стрельбой (по крайней мере, используйте --pid, чтобы вы могли легко перезагрузить/остановить пушки).

Ответ 2

Если у вас уже установлен диспетчер, я думаю, что пушкирь будет немного лишним. Ниже приведен файл flask.ini, который можно удалить в/etc/supervisord.d/(затем "superisorctl reload", чтобы перезагрузить конфигурацию и запустить процесс).

command=/opt/flask/env0/bin/python /opt/flask/developer/FlaskWebServer.py
directory=/opt/flask
redirect_stderr=true
startsecs=5
autorestart=true
stdout_logfile=/opt/flask/flask.stdout.log

Ответ 3

Если вы хотите контролировать его и поддерживать постоянную перезагрузку, вы можете использовать immortal

Вы можете называть его следующим образом:

immortal -l/var/log/your-app gunicorn project: приложение

Или через run.yml, например:

cmd: gunicorn project:app
cwd: /path/of/project
env:
    DEBUG: 1
    ENVIRONMENT: production
 log:
    file: /var/log/app.log
    age: 86400 # seconds
    num: 7     # int
    size: 1    # MegaBytes
    timestamp: true # will add timesamp to log
 stderr:
    file: /var/log/app-error.log
    age: 86400 # seconds
    num: 7     # int
    size: 1    # MegaBytes
    timestamp: true # will add timesamp to log
 user: www

Подробнее о бессмертном: https://immortal.run/about/