Назад | Перейти на главную страницу

Сигнал перезагрузки для UWSGI при использовании Supervisord?

Я использовал UWSGI за Nginx и установил supervisord для перезапуска экземпляров Nginx и UWSGI в случае перезагрузки сервера.

Я отлаживаю свое приложение, и иногда мне нужно перезагрузить приложение. В соответствии с эта страница Я должен отправить SIGHUP, чтобы выполнить плавную перезагрузку.

Я мог найти настройку конфигурации стоп-сигнала на эта страница, но я не смог найти ни одной записи, связанной с чем-то вроде "reloadsignal" или "restartsignal".

Любые идеи?

stopsignal

    The signal used to kill the program when a stop is requested. 
    This can be any of TERM, HUP, INT, QUIT, KILL, USR1, or USR2.

    Default: TERM

    Required: No.

    Introduced: 3.0

stopsignal=HUP то, что вы ищете:

[program:uwsgi]
user = uwsgi
command=/usr/sbin/uwsgi ...
autostart=true
autorestart=true
stderr_logfile = /var/log/uwsgi/err.log
stdout_logfile = /var/log/uwsgi/out.log
stopsignal=HUP

Я сообщил о проблеме по этому поводу Вот, Я надеюсь, что это будет принято как запрос функции, и у всех нас будет шанс использовать эту возможность.

Если ты бежишь supervisorctl status вы увидите pid процесса uwsgi. Что-то вроде этого,

$ supervisorctl status
uwsgi                           RUNNING    pid 25700, uptime 0:15:48

Все, что вам нужно сделать, это отправить сигнал HUP вручную на этот pid.

kill -HUP 25700

Вы можете автоматизировать это,

supervisorctl status signal | grep -o 'pid\s\+\d*'| awk '{print $2}' | xargs -n 1  kill -HUP

После использования этого сигнала состояния supervisorctl | grep -o 'pid \ s + \ d *' | awk '{print $ 2}' | xargs -n 1 kill -HUP для постепенной перезагрузки Nginx не смог получить соединение с восходящим потоком