Традиционно сложилось, что при изменении конфигурации 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"
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, PostgreSQL) на протяжении последних 24 лет.