Wie stoppe ich uwsgi, wenn keine PID-Datei in der Konfiguration vorhanden ist?

14

Ich habe gerade installiert , uwsgiindem pip install uwsgiin einem virtuellen env. In der "ini" -Datei habe ich verwendet:

socket = 127.0.0.1:3000
# no pidfile option

Und Renn uwsgi --ini config.ini

Aber wie kann man diese Instanz von uwsgi stoppen?
uwsgi --stop ...will eine PID-Datei. Ich kann keine Adresse verwenden:

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

Und wenn er tötet, taucht uwsgi einfach von selbst wieder auf.

Sergey
quelle

Antworten:

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
quelle
6
Wenn Sie nicht haben killall, können Sie auchsudo pkill -f uwsgi -9
Zachary Blackwood
4

Es ist bekannt, dass Sie uwsgi nicht einfach mit kill beenden können. Der zweite Punkt von: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

Wenn uWSGI 2.1 das SIGTERM-Signal standardmäßig an uWSGI sendet, bedeutet dies, dass der Stack brutal neu geladen wird, während eine Anwendung auf SIGTERM geschlossen wird. Zum Herunterfahren von uWSGI verwenden Sie stattdessen SIGINT oder SIGQUIT. Wenn Sie absolut nicht damit leben können, dass uWSGI SIGTERM gegenüber so respektlos ist, aktivieren Sie auf jeden Fall die Option "Die-On-Term". Glücklicherweise wurde diese schlechte Wahl in uWSGI 2.1 behoben

Rankinstein
quelle
2

Ähnlich wie bei der ersten Antwort können Sie dies in Ubuntu oder Debian einfach tun sudo killall -9 uwsgi. Ich möchte allerdings wissen, ob uwsgi es ermöglicht, sich selbst zu stoppen.

waldronluo
quelle