¿Cómo detener uwsgi cuando no hay pidfile en config?

14

Acabo de instalar uwsgipor pip install uwsgiun env virtual. En el archivo "ini" utilicé:

socket = 127.0.0.1:3000
# no pidfile option

Y correr uwsgi --ini config.ini

Pero, ¿cómo detener esta instancia de uwsgi?
uwsgi --stop ...quiere un archivo pid. No puedo usar una dirección:

open("127.0.0.1:3000"): No such file or directory [core/io.c line 505]

Y si está matando, uwsgi se reaparece solo.

Sergey
fuente

Respuestas:

16
ps ax | grep uwsgi
15005 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini
15006 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini
15007 pts/4    S      0:00 /ve/path/bin/uwsgi --ini config.ini

killall -s INT /ve/path/bin/uwsgi
Sergey
fuente
66
Si no tienes killall, también puedes hacerlosudo pkill -f uwsgi -9
Zachary Blackwood
4

Es una característica conocida que no puede terminar uwsgi con solo kill. La segunda viñeta de: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

Hasta uWSGI 2.1, por defecto, enviar la señal SIGTERM a uWSGI significa "volver a cargar brutalmente la pila" mientras la convención es cerrar una aplicación en SIGTERM. Para apagar uWSGI use SIGINT o SIGQUIT en su lugar. Si absolutamente no puede vivir con uWSGI siendo tan irrespetuoso con SIGTERM, habilite la opción de morir a término. Afortunadamente, esta mala elección se ha solucionado en uWSGI 2.1

Rankinstein
fuente
2

Similar a la respuesta principal, en Ubuntu o Debian puedes simplemente hacer sudo killall -9 uwsgi. Aunque sí quiero saber si uwsgi da una manera de detenerse.

waldronluo
fuente