Supervisord管理fcgi和django

时间:2012-12-23 18:12:11

标签: django fastcgi supervisord

我已经设法在我的django项目上使用fastcgi设置supervisord,问题是当我停止mi程序时,服务器会以某种方式继续运行,并且我的页面保持在线状态。

这是我的supervisord程序指令:

[program:helloworld]
command=/var/www/django-projects/helloworld/run

这是我的“运行”脚本:

#!/bin/bash

source /var/www/django-projects/helloworld/venv/bin/activate;
/var/www/django-projects/helloworld/manage.py runfcgi \
     daemonize=false \
     host=127.0.0.1 \
     port=8000;

我想要的是使用supervisord停止/启动/重启这个django项目的方法,希望你能帮助我。

1 个答案:

答案 0 :(得分:1)

虽然我不使用fcgi,但我几乎可以肯定你的问题出在source /var/www/django-projects/helloworld/venv/bin/activate;

你不应该在管理程序启动脚本中使用source,它会更改当前的shell,并且没有supervisord。而只需在supervisord脚本中更改路径:

directory = /var/www/django-projects/helloworld/
command = /var/www/django-projects/helloworld/manage.py runfcgi \
 daemonize=false \
 host=127.0.0.1 \
 port=8000;

使用activate脚本查看this answervirtualenv documentation