Я могу остановить сервер nginx, используя nginx -s stop
или nginx -s quit
.
В чем разница?
Quit - это плавное завершение работы. Nginx завершает обслуживание открытых соединений перед выключением
Остановка - это быстрое завершение работы, которое завершается между обслуживанием соединения
-s stop
немедленно завершает процесс nginx, пока -s quit
плавно завершает работу.
SIGQUIT
заставляет nginx ломаться, если он прослушивает сокеты домена Unix. Он не сможет очистить сокеты, а затем немедленно прекратит работу при следующем вызове, потому что он не может создавать сокеты на уже существующих путях.
SIGTERM
заставляет nginx завершать работу до согласованного состояния, из которого он может начать резервное копирование. Демон удаляет все сокеты домена Unix, оставляет все кеши в рабочем состоянии и так далее.
По сути, вы никогда не захотите использовать QUIT.