记一次处理Apache无法启动的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次处理Apache无法启动的问题相关的知识,希望对你有一定的参考价值。

一、问题现象
使用/usr/local/apache/bin/apachectl start启动,apache服务无响应。

二、问题分析排查
1.使用 ps -ef | grep http 查看进程,并kill掉,反复多次也没有解决
2.查看apache的pid文件,并手动删除,也无法解决服务响应问题
3.查看/usr/local/apache/logs/error.log日志,发现如下信息

Fri Jun 13 11:59:24 2008] [alert] httpd: Could not determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName 
semget: No space left on device

起初以为是磁盘空间不足,但是用 df -h命令查看,并没有磁盘空间不足问题:
技术图片

再继续排查,找到了关于使用ipcs查看系统的信号量的方案。查看结果为:
技术图片

最终使用如下命令清理了已经满了的信号量,再次查看ipcs数量结果为:
for i inipcs | grep nobody | awk ‘{print $2}‘; do ipcrm -s $i; done
技术图片

终于,Apache能正常启动了,http能正常提供服务了。

三、问题总结
如果apache没有正常Stop掉的话,它的信号量是不会自动清除的,导致其一直滞留在内存中,也就导致了error日志中看到的空间不足问题,此时其实不是磁盘空间不足,而是内存中没有了存放信号量的空间。于是,需要使用命令清除sem信号量后,apache就可以正常启动了。

以上是关于记一次处理Apache无法启动的问题的主要内容,如果未能解决你的问题,请参考以下文章

记一次虚拟机无法挂载volume的怪异问题排查

记一次rabbitMQ无法启动错误解决方案

记一次kubernetes Evicted的处理

记一次kubernetes Evicted的处理

记一次数据崩溃无法启动

记一次ORACLE无法启动登陆事故