Jak zatrzymać uwsgi, gdy nie ma pliku pid w konfiguracji?

14

Właśnie zainstalowane uwsgiprzez pip install uwsgiw wirtualnym ENV. W pliku „ini” użyłem:

socket = 127.0.0.1:3000
# no pidfile option

I biegnij uwsgi --ini config.ini

Ale jak zatrzymać ten przypadek uwsgi?
uwsgi --stop ...chce plik pid. Nie mogę użyć adresu:

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

A jeśli zabijanie - uwsgi po prostu się odradza.

Siergiej
źródło

Odpowiedzi:

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
Siergiej
źródło
6
Jeśli nie masz killall, możesz także zrobićsudo pkill -f uwsgi -9
Zachary Blackwood
4

Jest to znana funkcja polegająca na tym, że nie można zakończyć uwsgi tylko za pomocą kill. Drugi punkt: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

Do czasu uWSGI 2.1 domyślnie wysyłanie sygnału SIGTERM do uWSGI oznacza „brutalne przeładowanie stosu”, podczas gdy konwencja polega na wyłączeniu aplikacji na SIGTERM. Aby zamknąć uWSGI, użyj SIGINT lub SIGQUIT. Jeśli absolutnie nie możesz żyć z uWSGI, który jest tak lekceważący w stosunku do SIGTERM, z całą pewnością włącz opcję die-on-term. Na szczęście ten zły wybór został naprawiony w uWSGI 2.1

Rankinstein
źródło
2

Podobnie jak w przypadku pierwszej odpowiedzi, w Ubuntu lub Debian możesz to zrobić po prostu sudo killall -9 uwsgi. Chociaż chcę wiedzieć, czy uwsgi da się powstrzymać.

waldronluo
źródło