На странице руководства php-fpm указано, что ответ на сигнал USR2 следующий: «плавная перезагрузка всех рабочих + перезагрузка fpm conf / binary». Однако при тестировании я обнаружил, что перезагрузка фактически убивает рабочих, обрабатывающих запросы. Я ожидал, что запросы будут завершены до того, как процессы будут убиты и повторно созданы.
Это неверно, мои ожидания неверны или тест недействителен?
Моя тестовая установка:
Ubuntu 16.
установить php7.0-fpm и nginx
php для перехода в спящий режим и вывода обратного отсчета каждую секунду
send request to sleep for 30 seconds via curl
issue reload via systemctl
Test result:
request was killed immedietly upon reload
Sapo gjeta përgjigjen time: opsioni i konfigurimit process_control_timeout
ishte vendosur në një vlerë të paracaktuar prej 0 sekondash. Një parazgjedhje e tmerrshme për mendimin tim.
Unë vendosa process_control_timeout
në një vlerë prej 30s
për të lejuar që proceset e fëmijës të përfundojnë deri në 30 sekonda dhe të lënë përpara se të vrites me forcë. Sidoqoftë, kjo hyn në fuqi vetëm në rimbushjet pasuese pasi kërkohet rimbushja e parë për të vënë në veprim këtë ndryshim.