Разница между Daemon и Upscript для Gunicorn в Django Production

Я развертываю сайт Django в производстве, и вот уже неделю я не могу получить скрипт Gunicorn в /etc/init/project.conf для привязки Nginx, независимо от того, что я делаю в виртуальной среде Django и под недавно созданным пользователем djagno в месте /home/Django/project/bin/gunicorn. Мне нужно знать, могу ли я запустить рабочий сайт с демоном. Я понимаю, что демон — это просто фоновый процесс, не привязанный к какому-либо tty. Но с созданием pid с запуском команды внутри virtualenv, например «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.


person Shazia Nusrat    schedule 12.03.2016    source источник


Ответы (1)


Дело в том, что если вы просто запустите его таким образом, вы не будете нести ответственность за то, чтобы он оставался в рабочем состоянии: если процесс умрет или вам придется перезапустить сервер, вам придется повторно запустить эту команду вручную. Это то, что выскочка или супервизор сделает за вас: отследит, что он действительно работает, и вернет его обратно, если это не так.

Если вам нужна помощь в отладке скрипта выскочки, вам нужно опубликовать его, а также любые ошибки из журнала.

person Daniel Roseman    schedule 12.03.2016
comment
Я пытался увидеть подробности и не получить никакой помощи в /var/upstart/gunicorn.log для этого проекта. Я вставил сценарий в исходный вопрос выше. - person Shazia Nusrat; 12.03.2016