threads processes enable and uwsgi supervisor

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


  1. archivo de configuración del supervisor del proyecto

    add stopsignal=INT

  2. 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