У меня nginx 1.6.2 с конфигурацией для обновления соединения до websocket.
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Если соединение websocket не открыто, срабатывает «service nginx stop», и оба процесса — главный и рабочий — корректно останавливаются.
killproc $prog -QUIT
Но когда у меня открыт веб-сокет, nginx не может быть остановлен, даже если я получаю:
Stopping nginx: [ OK ]
Я пытался :
killproc $prog -KILL
но, как и ожидалось, он принудительно убивает главный процесс при первом запуске команды и рабочий процесс при повторном выполнении.
Что вы рекомендуете для принудительного завершения работы nginx? Я думаю заменить killproc на:
pkill $prog
решение1
http://nginx.org/en/docs/control.html
Попробуйте использовать TERM
или INT
вместо KILL
.
KILL
это слишком «быстро», это не даст главному процессу nginx возможности остановить рабочие процессы.