Супервизор управляет fcgi и django

Мне удалось настроить supervisord с помощью fastcgi в моем проекте django, проблема в том, что когда я останавливаю программу mi, сервер каким-то образом продолжает работать, а моя страница остается в сети.

Вот моя директива программы супервизора:

[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;

Все, что я хочу, это способ остановить/запустить/перезапустить этот проект django с помощью supervisord, надеюсь, вы можете мне помочь.


person danielrvt    schedule 23.12.2012    source источник


Ответы (1)


Хотя я не использую fcgi, я почти уверен, что ваша проблема связана с source /var/www/django-projects/helloworld/venv/bin/activate;

Вы не должны использовать source внутри сценария запуска супервизора, он меняет текущую оболочку, а с супервизором ее нет. Вместо этого просто измените свой путь в скрипте 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;

См. этот ответ и документация virtualenv по использованию скрипта activate .

person Density 21.5    schedule 23.12.2012
comment
Привет @Density. Я принял ваше предложение о virtualenv, однако оно все еще не работает, не могли бы вы сказать мне, какой сервер вы используете и как вы его настроили? - person danielrvt; 24.12.2012
comment
Наконец-то мне удалось запустить его, но с помощью gunicorn, хотя я бы очень хотел использовать fastcgi. - person danielrvt; 24.12.2012