使用Supervisor的环境变量

时间:2013-06-06 19:16:31

标签: django deployment environment-variables supervisord

我按照this blogpost设置了主管来运行celeryd,celerycam和gunicorn。一开始一切顺利。第一次重启后,没有任何启动。我能看到的日志就是这种形式。

  

未知命令:'run_gunicorn'

     

输入'manage.py help'以供使用。

我猜这是因为主管没有“看到”我的环境变量,如DJANGO_SETTINGS_MODULE,DB_HOST等。我把所有这些变量放在/ etc / environment中但是没用。我再一次尝试将它们放在environment下的/etc/supervisor/supervisord.conf中的[supervisor]标记中。我收到以下错误

  

启动主管:错误:格式化字符串'\'DEBUG \'=“False”,   \ 'DJANGO_SETTINGS_MODULE \'= “project.settings.production”,用于   '环境'格式错误

我的supervisord.conf在[supervisord]下有以下内容

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
environment = 'DEBUG'="False",'DJANGO_SETTINGS_MODULE'="project.settings.production",

[更新 - 从celery,gunicorn,celerycam添加日志]

来自celeryd_err.log的日志

  

ImportError:没有名为debug_toolbar的模块

     

ImportError:没有名为debug_toolbar的模块

     

ImportError:没有名为debug_toolbar的模块

来自celerycam_err.log的日志

  

ImportError:没有名为debug_toolbar的模块

     

ImportError:没有名为debug_toolbar的模块

     

ImportError:没有名为debug_toolbar的模块

来自gunicorn_err.log的日志

  

输入'manage.py help'以供使用。

     

未知命令:'run_gunicorn'

     

输入'manage.py help'以供使用。

     

未知命令:'run_gunicorn'

     

输入'manage.py help'以供使用。

     

未知命令:'run_gunicorn'

有关我可以获得解决方案的建议吗?在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

编辑gunicorn.conf文件可能更合适。

它应该类似于:

[program:gunicorn]
...
environment=DJANGO_SETTINGS_MODULE='project.settings.production',DEBUG='False'

请注意,没有尾随逗号,未引用“键”并引用值。如果您只使用字母数字值,则不需要引号,但执行此操作会更安全。

要确保配置文件在主管中有用,请执行以下操作:

sudo supervisorctl
reread

处理可能输出的任何错误。

我发现有必要重新加载supervisor以使配置文件生效:

sudo supervisorctl
reload