我在 Raspberry Pi 上运行 php7.4-fpm 作为服务器(相当于完全更新的 Debian 11.8;Apache 2.4 Web 服务器)。它已经顺利运行了好几个月。昨晚,某个东西停止了 php-fpm 主进程。我意识到问题后就能够重新启动它。
系统日志显示
Dec 27 04:21:33 cameo4b systemd[1]: php7.4-fpm.service: Main process exited, code=killed, status=7/BUS
Dec 27 04:21:33 cameo4b systemd[1]: php7.4-fpm.service: Failed with result 'signal'.
Dec 27 04:21:33 cameo4b systemd[1]: php7.4-fpm.service: Consumed 4h 34min 43.800s CPU time.
同时,alternatives.log 显示
update-alternatives 2023-12-27 04:21:33: run with --quiet --remove php-fpm.sock /run/php/php7.4-fpm.sock
update-alternatives 2023-12-27 04:21:33: link group php-fpm.sock fully removed
这似乎是杀死 php-fpm 主进程的原因。几个小时后,当我重新启动时(使用 systemctl restart),alternatives.log 显示:
update-alternatives 2023-12-27 08:30:13: run with --quiet --install /run/php/php-fpm.sock php-fpm.sock /run/php/php7.4-fpm.sock 74
update-alternatives 2023-12-27 08:30:13: link group php-fpm.sock updated to point to /run/php/php7.4-fpm.sock
我找不到正在运行 update-alternatives 的程序。似乎没有引用它的例行 cron 作业。(最有可能的是apt-compat
,但它似乎在 06:47 运行;apt 日志仅显示几天前的手动安全升级,正如我所料)。
为什么 update-alternatives 会自动运行?是什么让它运行的?为什么它会导致 php-fpm 无法运行?Alternatives 系统确实管理着默认套接字的位置。
$ ls -l /etc/alternatives/php-fpm.sock
lrwxrwxrwx 1 root root 24 Dec 27 08:30 /etc/alternatives/php-fpm.sock -> /run/php/php7.4-fpm.sock