Я только что установил 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 просто возрождается.
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
Это известная особенность, что вы не можете завершить uwsgi просто kill. Вторая пуля: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html
До uWSGI 2.1 по умолчанию отправка сигнала SIGTERM в uWSGI означает «грубую перезагрузку стека», в то время как соглашение заключается в завершении работы приложения на SIGTERM. Чтобы выключить uWSGI, используйте SIGINT или SIGQUIT. Если вы абсолютно не можете жить с таким неуважением uWSGI к SIGTERM, обязательно включите опцию «умереть в срок». К счастью, этот неправильный выбор был исправлен в uWSGI 2.1.
Как и в первом ответе, в Ubuntu или Debian вы можете просто сделатьsudo killall -9 uwsgi
. Хотя я действительно хочу знать, дает ли uwsgi возможность остановить себя.