Я использовал 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 не смог получить соединение с восходящим потоком