Django制作中Gunicorn的Daemon和Upscript的区别

时间:2016-03-12 12:56:01

标签: python linux django nginx gunicorn

我正在生产中部署一个Django网站,现在从一周开始我无法在/etc/init/project.conf中获取Gunicorn脚本来绑定Nginx,无论我在Django虚拟环境和新创建的用户中做什么djagno at location / home / Django / project / bin / gunicorn。我需要知道我可以使用守护进程在生产中运行一个站点。我知道守护进程只是一个后台进程,并没有附加到任何tty。但是通过在virtualenv中运行命令来创建一个pid,例如“gunicorn --bind 127.0.0.1:9500 project.wsgi:application --config = / etc / gunicorn.d / gunicorn.py --name = project -p /tmp/project.pid“它不会作为服务吗?没有虚拟环境的我的项目工作得很好但不适用于虚拟环境。我正在学习Linux,所以需要专家建议。我可以启动这样的项目吗?

我在virtualenv中无法附加的新手脚本如下所示。

description "Gunicorn daemon for Django project"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

# If the process quits unexpectadly trigger a respawn
respawn

setuid django
setgid django
chdir /home/django

exec gunicorn \
    --name=project\
    --pythonpath=project\
    --bind=127.0.0.1:9500 \
    --config /etc/gunicorn.d/gunicorn.py \
    project.wsgi:application

如果有人可以根据virtualenv帮助我改变它,我会很感激。再次......没有virtualenv的我的项目的相同设置工作得很好但不是我的第二个网站,唯一的区别是我正在运行没有virtualenv的第一个项目,第二个是来自virtualenv。

1 个答案:

答案 0 :(得分:0)

重点是,如果你只是这样运行它,你就没有任何责任确保它仍然存在:如果进程终止,或者你必须重新启动服务器,你将不得不重新启动它手动运行该命令。那个新贵或主管会为你做什么:监控它确实在运行,如果不是,就把它带回来。

如果您需要有关调试upstart脚本的帮助,则需要实际发布它,以及日志中的任何错误。