【问题标题】:Gunicorn upstart script fails to startGunicorn upstart 脚本无法启动
【发布时间】:2016-04-03 08:30:34
【问题描述】:

我使用https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-14-04 的教程制作了这个新贵脚本。除了我不使用 virtualenv 所以我只有 'exec gunicorn'

description "Test Django project"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
setuid userx
setgid www-data
chdir /home/mahsan/Documents/Test

exec gunicorn --workers 3 --bind unix:/home/userx/Documents/Test/Test.sock Test.wsgi:application

使用grep :init /var/log/syslog 我发现这个:

4 月 2 日 15:31:24 背箱内核:[5296.877715] 初始化:gunicorn main 进程结束,重生 Apr 2 15:31:24 backbox kernel: [ 5296.991094]初始化:gunicorn主进程(4247)以状态1 Apr 2 15:31:24终止后箱内核:[5296.991133]初始化:gunicorn main 进程结束,重生 Apr 2 15:31:24 backbox kernel: [ 5297.102330]初始化:gunicorn主进程(4249)以状态1 Apr 2 15:31:24终止后箱内核:[5297.102359]初始化:gunicorn main 进程结束,重生 Apr 2 15:31:24 backbox kernel: [ 5297.217514]初始化:gunicorn主进程(4251)以状态1 Apr 2 15:31:24终止后箱内核:[5297.217528]初始化:gunicorn 重生速度太快,在 4 月 2 日 15:40:04 后箱内核停止:[ 5817.334970] init:gunicorn 主进程 (4533) 以状态 1 终止

但是,当我从 manage.py 所在的目录运行 exec gunicorn --workers 3 --bind unix:/home/userx/Documents/Test/Test.sock Test.wsgi:application 时,它会毫无意外地启动。然后当我做ps ax | grep gunicorn 时,我看到工人出现了。

知道我在这里做错了什么吗?

【问题讨论】:

  • 请显示来自/var/log/init/的相关暴发户日志。
  • 你为什么不使用 virtualenv?
  • 来自 /var/log/init 的哪个日志?如果您要获取暴发户/gunicorn 日志,则没有生成日志。没想到我需要 virtualenv,serving 将只托管那个应用程序。
  • 会有一个与你的新贵脚本同名的。
  • upstart 脚本在 /etc/init/gunicorn.conf 中。运行 ls /var/log/ | grep 'gunicorn'ls /var/log/upstart | grep 'gunicorn' 都空了,似乎没有 /var/log/init 目录。

标签: linux django nginx gunicorn upstart


【解决方案1】:

好的,只需将 .sock 文件放在 /tmp 中即可。此外,如果其他人有权提供静态文件,则出现 403 错误,这只是授予 nginx 文件权限的问题。

【讨论】: