php-fpm用pkill -9引发的问题
现象: QA对线上服务进行验收后,没人任何人操作的情况下,php-fpm自动终止了。 结果是线上服务在QA验收通过后一段时间挂了。
经过推演和日志佐证,暂时得出的结论是: 运维人员使用pkill -9 终止php-fpm后,忘记启动了。
推演出来的原因: pkill -9会先枚举php-fpm所有的进程,然后逐个kill -9操作。 枚举完成后,kill掉php-fpm的master之前,有可能master会产生新的worker,这个间隙的worker成为漏网之鱼,当worker到达设定的响应次数后,自动退出。