Справка по развертыванию приложений Django - PullRequest
1 голос
/ 05 декабря 2009

Я использую Capistrano для развертывания приложения Django (оно использует Nginx в качестве веб-сервера), используя инструкции, которые я нашел по адресу http://akashxav.com/2009/07/11/getting-django-running-on-nginx-and-fastcgi-on-prgmr/ (мне пришлось взглянуть на кэшированную версию ранее сегодня), и мне было интересно последняя команда там, которая является

python manage.py runfcgi host=127.0.0.1 port=8081 --settings=settings

На высоком уровне я понимаю, что это говорит приложению, что мы хотим запустить несколько экземпляров двоичного файла FastCGI для обслуживания этого приложения.

Что мне было интересно, так это лучший способ справиться с «сбросом» этого из-за отсутствия лучшего слова. Для тех, кто не знает, Capistrano развертывает вещи, создавая каталоги "релизов" и затем предоставляя символическую ссылку на последний выпуск.

Так как я могу выполнять задачи после развертывания (я делал это с приложениями CakePHP для выполнения таких задач, как правильная установка разрешений на каталог для каталога кэширования в приложении), мне было интересно, как отключить существующие процессы, созданные командой выше и запускайте новые.

Надеюсь, у меня есть смысл.

1 Ответ

1 голос
/ 05 декабря 2009

В документации django есть раздел об этом

В основном используйте параметр pidfile для manage.py, а затем напишите небольшой сценарий оболочки, чтобы использовать этот pid для уничтожения существующего процесса cgi, если он существует до запуска нового.

Как то так

#!/bin/bash
if [ -f "pidfile" ]; then
    kill `cat -- pidfile`
    rm -f -- pidfile
fi
exec python manage.py runfcgi host=127.0.0.1 port=8081 pidfile=pidfile --settings=settings

NB Поддержка FastCGI устарела и будет удалена в Django 1.9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...