Как остановить uwsgi, когда в конфиге нет pidfile?

14

Я только что установил uwsgiна pip install uwsgiв виртуальном окр. В файле "INI" я использовал:

socket = 127.0.0.1:3000
# no pidfile option

И беги uwsgi --ini config.ini

Но как остановить этот экземпляр UWSGI?
uwsgi --stop ...хочет файл pid. Я не могу использовать адрес:

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

А если убивает - uwsgi просто возрождается сам.

Сергей
источник

Ответы:

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
Сергей
источник
6
Если у вас нет killall, вы также можете сделатьsudo pkill -f uwsgi -9
Захари Блэквуд
4

Это известная особенность, что вы не можете завершить UWSGI просто убить. Вторая пуля: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html

До uWSGI 2.1 по умолчанию отправка сигнала SIGTERM в uWSGI означает «жесткую перезагрузку стека», в то время как принято закрывать приложение на SIGTERM. Чтобы выключить uWSGI, используйте SIGINT или SIGQUIT. Если вы абсолютно не можете жить с таким неуважительным отношением uWSGI к SIGTERM, обязательно включите опцию «умереть на срок». К счастью, этот плохой выбор был исправлен в uWSGI 2.1

Rankinstein
источник
2

Как и в первом ответе, в Ubuntu или Debian вы можете просто это сделать sudo killall -9 uwsgi. Хотя я действительно хочу знать, дает ли Уссги способ остановить себя.

waldronluo
источник