数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Apache故障的解决一例

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

故障现象:
在一台服务器上,以wacos用户启动apache进程,启动后立刻使用命令ps –ef | grep httpd能够看到一个进程被启动,但是稍候访问web界面就报错,再使用命令ps –ef | grep httpd,发现进程已经宕掉。
    询问现场工程师进行过的操作以后,得知之前进行了服务端口的重新绑定。
    检查apache的错误日志文件error_log,发现有如下的告警:
[warn] pid file /opt/wacos/tools/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?

故障描述:
在一台服务器上,以wacos用户启动apache进程,启动后立刻使用命令ps –ef | grep httpd能够看到一个进程被启动,但是稍候访问web界面就报错,再使用命令ps –ef | grep httpd,发现进程已经宕掉。
    询问现场工程师进行过的操作以后,得知之前进行了服务端口的重新绑定。
    检查apache的错误日志文件error_log,发现有如下的告警:
[warn] pid file /opt/wacos/tools/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?

怀疑与Apache的pid记录文件或者配置文件有关(因为现场改动了apache的监听端口)。于是打开两个登录窗口,一个窗口用tail –f error_log监视错误日志文件的输出情况,另一个窗口则启动apache的服务。
    在启动apache后,发现错误日志文件输出如下内容:
[Thu Jun 24 21:54:27 2004] [warn] pid file /opt/wacos/tools/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
fopen: Permission denied
httpd: could not log pid to file /opt/wacos/tools/apache/logs/httpd.pid

    进入到/opt/wacos/tools/apache/logs使用ls –l httpd.pid检查httpd.pid文件的属性,发现该文件的属性如下:
-rw-r--r--   1 root    others            4 Jun 25 14:58 httpd.pid
    其属主是root,而且又没有向其他用户放开写权限,使用wacos用户启动apache,apache试图改写httpd.pid文件时,肯定就会失败了。而这个文件记录了apache启动后的进程标识(PID,Process ID),对于httpd服务有着及其重要的作用,这样httpd进程当然会退出了。

故障分析:
估计是有相关的人员在日常维护中,使用root用户启动apache,导致httpd.pid文件的属主变成了root,导致后来使用wacos用户启动apache时,Apache会尝试写httpd.pid以便记录自己的pid进程号,但是由于httpd.pid目前的属主是root使用wacos用户修改httpd.pid文件肯定会失败。

故障处理:
定位到了问题以后,采用了如下的解决方法。
    进入到/opt/wacos/tools/apache/logs目录,删除httpd.pid文件。然后以wacos用户重新启动apache,成功启动apache。



相关文章

相关软件