記一次處理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命令查看,並沒有磁盤空間不足問題:
記一次處理Apache無法啓動的問題

再繼續排查,找到了關於使用ipcs查看系統的信號量的方案。查看結果爲:
記一次處理Apache無法啓動的問題

最終使用如下命令清理了已經滿了的信號量,再次查看ipcs數量結果爲:
for i inipcs | grep nobody | awk '{print $2}'; do ipcrm -s $i; done
記一次處理Apache無法啓動的問題

終於,Apache能正常啓動了,http能正常提供服務了。

三、問題總結
如果apache沒有正常Stop掉的話,它的信號量是不會自動清除的,導致其一直滯留在內存中,也就導致了error日誌中看到的空間不足問題,此時其實不是磁盤空間不足,而是內存中沒有了存放信號量的空間。於是,需要使用命令清除sem信號量後,apache就可以正常啓動了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章