Gunicorn:HaltServer 'Worker 无法启动。'

Posted

技术标签:

【中文标题】Gunicorn:HaltServer \'Worker 无法启动。\'【英文标题】:Gunicorn: HaltServer 'Worker failed to boot.'Gunicorn:HaltServer 'Worker 无法启动。' 【发布时间】:2014-08-05 20:43:40 【问题描述】:

我已经将一些 django 项目部署到 heroku,但完全不知道这里发生了什么或从哪里开始调试。它似乎立即崩溃。

foreman start

给我:

00:13:21 web.1  | started with pid 1242
00:13:22 web.1  | exited with code 3
00:13:22 system | sending SIGTERM to all processes
SIGTERM received

Procfile: web: gunicorn lvngd.wsgi:application

当我推送到 heroku 时,它也会立即崩溃。

我什至不知道从哪里开始...我尝试启动一个不同的应用程序,完全通过 django 教程尝试回溯,但我遇到了同样的错误,所以它似乎在我的设置?

我之前部署的应用程序之间的唯一区别是它们是 Django 1.5,而我目前正在尝试推送 Django 1.6。

我已经尝试重新安装heroku toolbelt,重新安装工头,重新安装gunicorn(gunicorn 似乎可以与python manage.py run_gunicorn 一起使用)并检查设置等。

当我尝试运行 gunicorn lvngd.wsgi:application 时,我得到一个跟踪错误,然后是 gunicorn.errors.HaltServer: ,但我不知道如何解决这个问题。

【问题讨论】:

这看起来像是您的 django 应用程序中的某个错误,因为 H10 表示测功机崩溃,错误代码 3 通常表示文件或路径无效。我希望这会有所帮助。 这就是我的想法,但我开始了一个新的 django 应用程序(一个没有任何内容的空白应用程序)并尝试按照 heroku 启动指南进行操作,这样我就可以运行一些东西,它仍然给了我同样的错误。 【参考方案1】:

我从 Heroku 得到的“官方”回答:

这似乎是 Gevent 的问题。我会推荐以下。

确保您安装了最新版本的 Gevent。 确保您安装了最新版本的 Gunicorn。

如果这两个都成立,您可能想尝试使用 Eventlet。它通常与应用程序代码更兼容。

虽然我已经这样做了,但我还通过 Librato 和 Slack 添加了监控功能,以便在应用开始响应不佳时通知我。当它发生时,我发出一个heroku restart 命令,该命令将正在运行的测功机翻转过来,似乎可以解决这个问题。

【讨论】:

以上是关于Gunicorn:HaltServer 'Worker 无法启动。'的主要内容,如果未能解决你的问题,请参考以下文章

gunicorn 多种工作模式

安装gunicorn

Nginx Django 和 Gunicorn。 Gunicorn 袜子文件丢失?

gunicorn安装完成后无法正常调用或执行gunicorn命令

linux 优雅的退出/关闭/重启gunicorn进程

gunicorn 简介