Я создаю приложение Django и решил изучить Fabric для автоматизации развертывания. У меня это в основном работает, но на последнем этапе происходит сбой, и я не могу понять, почему.
Я использую Nginx и Gunicorn для обслуживания приложения, и я хочу убить и перезапустить Gunicorn после внесения изменений и обновления базы данных. К сожалению, всегда кажется, что он терпит неудачу на последнем препятствии.
Последняя команда не отвечает с какой-либо ошибкой, но приложение не обслуживается, и если я использую SSH, для него нет процесса, и мне приходится перезапускать его вручную. Любая другая команда работает отлично.
Мой сказочный файл.py:
#!/usr/bin/env python
from fabric.api import local, env, run
from fabric.context_managers import cd, prefix
env.hosts = ['192.168.1.1']
env.path = "/home/matthew/Sites/projectname"
def deploy():
# Push changes to Bitbucket
local('git push origin master')
# Switch to project directory
with cd(env.path):
# Pull changes to server
run('git pull origin master')
# Activate virtualenv
with prefix('source venv/bin/activate'):
# Collect static files
run('python manage.py collectstatic --noinput')
# Sync and migrate the database
run('python manage.py syncdb')
run('python manage.py migrate')
# Kill and restart Gunicorn
run('killall gunicorn_django || true')
run('gunicorn_django -D -c gunicorn.conf.py')
Если я сбрасываю флаг -D, чтобы он не демонизировался, он работает, и я получаю следующий вывод, но мне нужно отключиться вручную с помощью Ctrl-C. Если я добавлю & в конец, это перестанет работать:
[192.168.1.1] out: 2013-05-22 12:47:51 [60549] [INFO] Starting gunicorn 0.17.4
[192.168.1.1] out: 2013-05-22 12:47:51 [60549] [INFO] Listening at: http://127.0.0.1:8888 (60549)
[192.168.1.1] out: 2013-05-22 12:47:51 [60549] [INFO] Using worker: sync
[192.168.1.1] out: 2013-05-22 12:47:51 [60554] [INFO] Booting worker with pid: 60554
[192.168.1.1] out: 2013-05-22 12:47:51 [60555] [INFO] Booting worker with pid: 60555
[192.168.1.1] out: 2013-05-22 12:47:51 [60556] [INFO] Booting worker with pid: 60556
[192.168.1.1] out:
Может ли кто-нибудь увидеть, где я сбился с пути?
which guinicon_django
? Возможно, место не вPATH
. - person Burhan Khalid   schedule 22.05.2013&
и посмотрите, поможет ли это; или запрет на использование чего-то вродеsupervisor
илиcircus
. - person Burhan Khalid   schedule 22.05.2013