【问题标题】:Can not deploy django using gunicorn and supervisor无法使用 gunicorn 和 supervisor 部署 django
【发布时间】:2015-08-01 02:14:47
【问题描述】:

我正在尝试使用 gunicorn/nginx 作为 webserserver 部署 django 项目。当我在 virtualevn 中运行此命令时,该项目运行良好:

(.zenv)randi@server:/srv/myproj$ gunicorn  --bind 127.0.0.1:8000 myproj.wsgi:application

但是,当我将 virtualenv 激活和上述命令添加到 /etc/supervisor/conf.d/myproj.conf 时:

[program:myproj]
directory = /srv/myproj
user = randi
command = source /home/randi/.zenv/bin/activate  &&  gunicorn  --bind 127.0.0.1:8000  myproj.wsgi:application
autorestart=true
redirect_stderr=true

stdout_logfile = /var/log/supervisor/access.log
stderr_logfile = /var/log/supervisor/error.log

启动主管supervisorctl start all(以root身份)后,我得到:

myproj: ERROR (abnormal termination)

supervisor status 给出:

myproj   FATAL      Exited too quickly (process log may have details)

错误日志中没有任何帮助。我在谷歌上搜索了一下,这个问题已经让我绊倒了一段时间。因此,我感谢您帮助解决它。

【问题讨论】:

  • 我认为还有其他日志文件,例如gunicorn 写的,不是 supervisord 的
  • 还有一个supervisord.log,其中包含很多:INFO gave up: myproj entered FATAL state, too many start retries too quickly
  • 我也有同样的问题。你有没有解决这个问题?

标签: django gunicorn django-deployment


【解决方案1】:

这里的问题是source 是未知的。

尝试在前台运行 supervisord(将其添加到您的配置中):

[supervisord]
nodaemon=true               

并启动 supervisord(如果需要,使用 -c path-to-.conf 标志和 -n 用于无守护进程)。

我收到此错误消息:

2016-07-21 18:54:16,030 INFO spawnerr: can't find command 'source'

解决方案是直接使用 environment 条目修改路径,但我无法使其工作。

environment=PATH="/path/to/venv/bin"

Supervising virtualenv django app via supervisor

【讨论】:

    猜你喜欢
    • 2020-12-26
    • 2014-03-31
    • 2015-04-21
    • 2012-08-22
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2013-12-08
    • 2013-10-05
    相关资源
    最近更新 更多