排查Apache HTTPD 2.4.6在RHEL 7.9上自动优雅关闭的原因
嗨,我来帮你梳理下排查这个问题的具体思路。你遇到的情况是Apache收到SIGWINCH信号后触发了优雅关闭,咱们从几个方向入手排查:
系统核心日志:先检查RHEL 7.9自带的系统日志,比如
/var/log/messages和/var/log/secure。可以用以下命令快速过滤相关内容:grep -i "httpd\|apache" /var/log/messages grep -i "httpd\|apache" /var/log/secure这里可能会记录管理员执行的启停命令、服务异常的系统级提示,甚至是权限变更相关的信息。
Systemd服务日志:RHEL 7.x用systemd管理服务,httpd的详细运行日志可以通过journalctl查看,指定时间范围能更精准定位昨天的事件:
journalctl -u httpd.service --since "yesterday" --until "today"这里可能会显示服务被停止的触发原因,比如是否是systemd的重启策略触发、资源限制导致的停止,或者外部调用
systemctl stop httpd的记录。定时任务排查:检查是否有定时脚本意外触发了Apache关闭。分别查看root和apache用户的crontab:
crontab -l -u root crontab -l -u apache同时别忘了检查系统级定时任务目录,比如
/etc/cron.d/、/etc/cron.hourly/、/etc/cron.daily/下的脚本,看看有没有涉及停止httpd的逻辑。信号来源追踪:
SIGWINCH通常是终端窗口大小变化时发送的信号,但后台运行的Apache收到这个信号,大概率是人为执行kill命令发送的,或者某个脚本误操作。可以用last命令查看昨天登录过系统的用户(尤其是拥有root权限的),排查是否有人执行过相关操作;也可以通过审计日志追踪:ausearch -m execve -k httpd这个命令能帮你找到和httpd相关的执行命令记录。
系统资源排查:虽然error_log里没有异常,但还是要确认是否是资源耗尽导致的问题。查看
/var/log/sa/目录下的sar日志文件(比如sa23代表23号的日志),检查CPU、内存使用情况:sar -u -f /var/log/sa/saXX # XX为日期,查看CPU使用率 sar -r -f /var/log/sa/saXX # 查看内存使用率如果是系统OOM(内存不足)杀手终止了Apache,
/var/log/messages里会有类似Out of memory: Kill process...的记录。
另外你提到的PHP通知,确实几乎不可能导致Apache触发优雅关闭,所以可以暂时排除这个因素。
备注:内容来源于stack exchange,提问作者demiglace

