Як зупинити 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, усіма силами ввімкніть опцію "die-on-term". На щастя, цей поганий вибір був зафіксований у uWSGI 2.1


2

Як і в першій відповіді, в Ubuntu або Debian ви можете просто зробити sudo killall -9 uwsgi. Хоча я хочу знати, чи uwsgi дає спосіб зупинитись.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.