Супервизор не перезагружает Gunicorn должным образом с проектом Django
Я использую Supervisor для перезагрузки Gunicorn при продвижении Django проекта в продакшн :
Workflow :
" && python manage.py migrate"\
" && python manage.py collectstatic --noinput"\
" && supervisorctl restart frontdesk-gunicorn"\
" && exit"
Конфигурация супервизора :
[program:project-gunicorn]
command=/home/gaetangr/project/myprojectenv/bin/gunicorn config.wsgi:application
user = gaetangr
directory = /home/gaetangr/project
autostart = true
autorestart = true
Но чаще всего, чтобы все изменения распространились, мне приходится делать sudo :
systemctl restart gunicorn
Насколько я понимаю, команда от супервизора должна быть точно такой же.
Есть идеи?
После некоторого времени я понял это, так что вот, пожалуйста.
Первоначально я использовал service для запуска Gunicorn, так было некоторое время, но потом я нашел вот это :
superviserd управляет процессами, создавая subprocesses. Если вы запустите gunicorn с помощью systemctl, то superviserd ничего не будет знать об этом gunicorn и не сможет его перезапустить. Используйте только одну систему управления процессами - либо supervisord, либо systemd.
В моем случае мне пришлось удалить службу, запускающую Gunicorn, а также сокет и обновить конфигурацию Nginx, чтобы удалить ссылку прокси-сервиса на Gunicorn.