Перезапуск конкретного пула для php5-fpm

Традиционно сложилось, что при изменении конфигурации php5-fpm чтобы она вступила в силу выполняют команду reload для основного мастер-процесса php5-fpm, по сути — это отправка сигнала SIGUSR2, но как перезапустить только нужный дочерний процесс?

Исходные данные: Debian 8.9 (jessie), nginx 1.13.5, php5-fpm 5.6.30

Традиционно при изменении конфигурации php5-fpm чтобы она вступила в силу выполняют команду:

/etc/init.d/php5-fpm reload

аналогом может служить команда:

kill -USR2 `cat /var/run/php5-fpm.pid`

Но reload не поможет в тех случаях когда например мы установили новый php-модуль и необходимо его использование, для этого нужно выполнять restart, а это уже затронет все php5-fpm пулы. В большинстве случаев такое кардинальное решение не желательно, хочется перезагрузить лишь один конкретный пул на котором работает один конкретный сайт, которому нужен новый php-модуль, а полный restart сделать ночью, когда не так много людей используют сервер.

Как быть?
Решение есть.

Для начала как протестировать конфигурацию php5-fpm?

php5-fpm -t

Протестировать конфигурацию php5-fpm с выводом:

php5-fpm -tt

И собственно магия, gracefull restart a pool

pkill -QUIT -f "php-fpm: pool web1"

Или hard restart a pool

pkill -f "php-fpm: pool web1"

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.


Оставить комментарий

avatar
1000

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о