Как использовать приложение supervisor FO start/stop uWSGI?
Я использую супервизор для запуска приложения uWSGI. Почему приложение uWSGI не всегда останавливается после остановки супервизора? конфигурация супервизора:
[program:test]
autostart = true
user=root
command=uwsgi --master --workers 5 --disable-logging --socket 127.0.0.1:8888
--module web --callable app
priority=1
redirect_stderr=true
stdout_logfile = /data/log
4 ответов
по умолчанию супервизор отправляет SIGTERM на остановку. SIGTERM в uWSGI означает "жестокая перезагрузка".
вы должны изменить его, чтобы выйти или INT:
stopsignal=выход
должно быть достаточно
другой подход (не рекомендуется) добавляет --die-on-term в командную строку uWSGI, чтобы изменить его поведение по умолчанию
Если вы используете " processes = # "в своей конфигурации uwsgi, вы также должны использовать"master = true". Если нет, инспектор убьет только одного из рабочих.
затем:
/ etc/supervisor / conf.d / app.conf
stopsignal = QUIT
/ etc/uwsgi / app.ini
processes = 4
master = true
- руководитель проекта конфиг
- файл конфигурации проекта uwsgi
удалить
daemonize=xxx.log
отключить режим демона
добавить
stopsignal=INT
Если вы используете свой UWSGI с мастером и рабочими, вам нужно добавить в свой
stopasgroup=false
killasgroup=false
или же независимо от того, что остановка uwsgi будет порождать больше мастера, а также работников.