Python 如何对Flask应用程序进行后台监控?

Python 如何对Flask应用程序进行后台监控?,python,flask,Python,Flask,我有一个使用Flask用Python编写的小应用程序。现在我在nohup下运行它,但我想把它后台化。这样做的正确方法是什么?。使用部署可能是最简单的方法,请安装gunicorn,然后: gunicorn project:app --daemon 虽然您可能希望使用supervisor或类似的功能来监视gunicorn(至少使用--pid,以便可以轻松地重新加载/停止gunicorn)。如果您已经安装了supervisor,我认为gunicorn会有点多余。下面是一个flask.ini文件,可以

我有一个使用Flask用Python编写的小应用程序。现在我在nohup下运行它,但我想把它后台化。这样做的正确方法是什么?

。使用部署可能是最简单的方法,请安装gunicorn,然后:

gunicorn project:app --daemon

虽然您可能希望使用supervisor或类似的功能来监视gunicorn(至少使用
--pid
,以便可以轻松地重新加载/停止gunicorn)。

如果您已经安装了supervisor,我认为gunicorn会有点多余。下面是一个flask.ini文件,可以放入/etc/supervisord.d/(然后“supervisorctl reload”以重新加载配置并启动流程)


如果您想监控它并在重新启动期间保持它的持久性,您可以使用

你可以这样称呼它:

不朽-l/var/log/你的应用程序gunicorn项目:应用程序

或通过,例如:

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

关于不朽的更多信息:

我正在运行centos,systemd为我的所有其他服务工作。 所以我在我的烧瓶应用程序中使用了相同的功能

使用“我的烧瓶”的所有设置创建脚本sh

#!/bin/bash
# flask settings
export FLASK_APP=/some_path/my_flask_app.py
export FLASK_DEBUG=0

flask run --host=0.0.0.0 --port=80
将此脚本设置为可执行脚本

chmod+x路径/of/my/script.sh

添加systemd服务以调用此脚本

/etc/systemd/system/
vim flask.service

要完成,请在启动时启用它

systemctl启用flask.service


有关systemd的更多信息:

请注意,通过此设置,您运行的是Flask内置服务器,该服务器无法很好地扩展。
#!/bin/bash
# flask settings
export FLASK_APP=/some_path/my_flask_app.py
export FLASK_DEBUG=0

flask run --host=0.0.0.0 --port=80
[Unit]
Description = flask python command to do useful stuff

[Service]
ExecStart = path/of/my/script.sh

[Install]
WantedBy = multi-user.target