Общая ситуация: у меня есть клиент на моем сервере, который может обновить часть кода в своем проекте python. Он может ssh в свою оболочку и вытащить из своего репозитория, и все в порядке - но код хранится в памяти (насколько мне известно), поэтому мне нужно фактически убить процесс fastcgi и перезапустить его, чтобы изменить код.Django: Изящно перезапустить сайты nginx + fastcgi, чтобы отразить изменения кода?
Я знаю, что могу gracefully restart fcgi, но я не хочу, чтобы это делать вручную. Я хочу, чтобы мой клиент обновил код, и в течение 5 минут или что-то еще, чтобы новый код работал под процессом fcgi.
Благодаря
Каждый клиент в настоящее время разделяет свой собственный процесс (я использую SVC и Баш скрипт в основном запустить manage.py runfcgi из своего собственного Dir) .. У меня нет многие, так что это не проблема. Как я могу позволить им перезапустить их самостоятельно, используя сценарий развертывания-кода? Файлы daemontool находятся в '/ etc/service/ /', поэтому у них нет разрешения на их использование, и у них нет разрешения использовать 'svc -d/-u' для перезапуска служб. Спасибо за помощь до сих пор! –
Bartek
Я не совсем уверен, что нужно для перезапуска процесса fcgi. Если он похож на mod_wsgi, вы можете просто коснуться файла wsgi (apache контролирует mtime). Кроме того, вы можете предоставить доступ к вашему сценарию bash и просто сделать его более умным (чтобы он правильно обрабатывал разрешения пользователя). Или вы можете переосмыслить свое развертывание, чтобы разрешить 1 процесс для каждого приложения, после чего они могут перезапускать свой собственный процесс так часто, как им нравится. Не уверен, что подходит для вас, но приведенный выше сценарий отвечает на заданный вами вопрос. –