Supervisor no está recargando correctamente Gunicorn con el proyecto Django.
Estoy utilizando Supervisor para recargar Gunicorn cuando subo el proyecto Django a producción:
Flujo de trabajo:
" && python manage.py migrate"\
" && python manage.py collectstatic --noinput"\
" && supervisorctl restart frontdesk-gunicorn"\
" && exit"
Configuración del Supervisor:
[program:project-gunicorn]
command=/home/gaetangr/project/myprojectenv/bin/gunicorn config.wsgi:application
user=gaetangr
directory=/home/gaetangr/project
autostart=true
autorestart=true
Pero la mayoría de las veces, para que todos los cambios se propaguen, tengo que hacer un sudo:
systemctl restart gunicorn
Según mi entendimiento, el comando del Supervisor debería ser exactamente el mismo.
¿Alguna idea?
davy.ai
Es posible que el usuario que ejecuta Supervisor no tenga suficientes permisos para reiniciar el proceso de Gunicorn. El comando
sudo
se suele utilizar para ejecutar comandos con permisos elevados, por lo que puede ser necesario otorgar permisos al usuario de Supervisor para ejecutar el comandosystemctl restart gunicorn
sinsudo
. Esto se puede hacer agregando el usuario de Supervisor al grupo correspondiente, comosudo
osystemd-journal
, según la distribución de Linux que se esté utilizando. Alternativamente, se puede modificar la directivacommand
en el archivo de configuración de Supervisor para incluir el comandosudo
antes del comandosystemctl
. Sin embargo, el uso desudo
de esta manera también puede requerir la entrada de una contraseña, lo cual no sería adecuado para flujos de trabajo de implementación automatizados.