【问题标题】:Using supervisor to run a flask app使用主管运行烧瓶应用程序
【发布时间】:2016-07-12 10:54:38
【问题描述】:

我正在 WebFaction 上部署我的 Flask 应用程序。我正在使用 flask-socketio,它引导我使用自定义 Websocket 应用程序(侦听端口)来部署它。 Flask-socketio 指示我通过在我的主 python 脚本中调用 socketio.run(app, port= ) 开始服务来部署我的应用程序。我已经在服务器上安装了 eventlet,所以 socketio.run 应该在 eventlet Web 服务器上运行应用程序。

我可以调用 python .py 并且一切正常——服务器运行,可以在域中查看它,套接字工作等。当我试图将它变成一个长时间运行的进程时,我的问题就开始了。有人建议我按照以下说明使用已在我的 web 应用程序上安装和配置的主管:https://community.webfaction.com/questions/18483/how-do-i-install-and-use-supervisord-to-control-long-running-processes

问题是,一旦我实际添加了让主管运行我的应用程序的命令,它就会出错:

Exited too quickly

我的日志说明了上述错误以及:

(exit status 1; not expected)

在我的主管配置文件中,我目前有以下程序配置:

[program:<prog_name>]
command=/usr/bin/python2.7 /home/<user>/webapps/<app_name>/<app>.py
autostart=true
autorestart=true

我已尝试删除和添加设置,但都导致相同的致命错误。

【问题讨论】:

  • 添加选项以将stdoutstderr 输出发送到文件,这样您就可以看到主管运行应用程序时发生了什么。可能是它在不同的用户下运行(您没有指定要在哪个用户下运行)。
  • 您找到解决方案了吗?我在这里遇到同样的问题...

标签: supervisord


【解决方案1】:

这就是我的主管配置的一部分,我正在使用 gunicorn 来运行我的烧瓶应用程序。

另外,我正在将来自主管配置的错误记录到一个文件中,所以如果你这样做,它可能会帮助你了解它为什么没有正确启动。

[program:gunicorn]
command=/juzten/venv/bin/gunicorn run:app --preload -p rocket.pid -b 0.0.0.0:5000 --access-logfile "-"
directory=/juzten/app-folder-name
user=juzten
autostart=true
autorestart=unexpected
stdout_logfile=/juzten/gunicorn.log
stderr_logfile=/juzten/gunicorn.log

【讨论】:

    猜你喜欢
    • 2018-12-13
    • 2013-05-03
    • 1970-01-01
    • 2015-07-05
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    相关资源
    最近更新 更多