processes - ¿Cómo usar el supervisor para iniciar/detener la aplicación uWSGI?
uwsgi ini enable threads (4)
Yo uso un supervisor para ejecutar la aplicación uWSGI. ¿Por qué la aplicación uWSGI no siempre se detiene después de detener el supervisor? config supervisor
[program:test]
autostart = true
user=root
command=uwsgi --master --workers 5 --disable-logging --socket 127.0.0.1:8888
--module web --callable app
priority=1
redirect_stderr=true
stdout_logfile = /data/log
- archivo de configuración del supervisor del proyecto
add
stopsignal=INT
- proyecto de archivo de configuración uwsgi
eliminar
daemonize=xxx.log
para deshabilitar el modo daemon
Por defecto el supervisor envía el SIGTERM en la parada. SIGTERM en uWSGI significa "recarga brutal".
Tienes que cambiarlo a QUIT o INT:
stopignal = SALIR
debería ser suficiente
Otro enfoque (desanimado) es agregar --die-on-term a la línea de comandos uWSGI para cambiar su comportamiento predeterminado
Si está ejecutando su UWSGI con maestro y trabajadores, debe agregar su archivo /etc/supervisor/conf.d/app.conf
stopasgroup=false
killasgroup=false
o de lo contrario, sin importar qué detener a uwsgi engendrará más maestro y también lo son los trabajadores.
Si usa "process = #" en la configuración de uwsgi, también debe usar "master = true". Si no, el supervisor solo matará a uno de los trabajadores.
Entonces:
/etc/supervisor/conf.d/app.conf
stopsignal = QUIT
/etc/uwsgi/app.ini
processes = 4
master = true