Comment arrêter uwsgi lorsqu'il n'y a pas de fichier pid dans la configuration?

14

Je viens d'installer uwsgipar pip install uwsgidans un env virtuel. Dans le fichier "ini" j'ai utilisé:

socket = 127.0.0.1:3000
# no pidfile option

Et courir uwsgi --ini config.ini

Mais comment arrêter cette instance de uwsgi?
uwsgi --stop ...veut un fichier pid. Je ne peux pas utiliser d'adresse:

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

Et si tuant - uwsgi se réapparaît.

Sergey
la source

Réponses:

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
la source
6
Si vous n'en avez pas killall, vous pouvez aussi le fairesudo pkill -f uwsgi -9
Zachary Blackwood
4

C'est une caractéristique connue que vous ne pouvez pas terminer uwsgi avec simplement kill. La deuxième puce de: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

Jusqu'à uWSGI 2.1, par défaut, envoyer le signal SIGTERM à uWSGI signifie «recharger brutalement la pile» alors que la convention est de fermer une application sur SIGTERM. Pour arrêter uWSGI, utilisez plutôt SIGINT ou SIGQUIT. Si vous ne pouvez absolument pas vivre avec uWSGI si irrespectueux envers SIGTERM, activez certainement l'option die-on-term. Heureusement, ce mauvais choix a été corrigé dans uWSGI 2.1

Rankinstein
la source
2

Semblable à la première réponse, dans Ubuntu ou Debian, vous pouvez simplement le faire sudo killall -9 uwsgi. Bien que je veuille savoir si uwsgi donne un moyen de s’arrêter.

Waldronluo
la source