日期:2014-05-16  浏览次数:21185 次

Apache的[notice] child pid 19818 exit signal Bus error (7)错误

还是apache,这次发现启动apache成功,但是没有一个工作进程,

查看错误日志,发现里面不停的打出“[notice] child pid 19818 exit signal Bus error (7)”消息:

?

[Thu Sep 27 16:56:29 2012] [notice] child pid 26576 exit signal Bus error (7)
[Thu Sep 27 16:56:29 2012] [notice] child pid 26577 exit signal Bus error (7)
[Thu Sep 27 16:56:29 2012] [notice] child pid 26578 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26579 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26580 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26581 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26582 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26583 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26584 exit signal Bus error (7)
[Thu Sep 27 16:56:30 2012] [notice] child pid 26592 exit signal Bus error (7)

?

google了一下,可能有以下原因:

1、“Bus Error”可能是由于某些程序崩溃到值得,可能是CGI程序。比如当一个是为Inter处理器写的C程序被重新编译到其他的处理器上(可能内存访问方式不一样的架构),简单理解就是服务器上跑了一个有bug的软件。

2、CGI程序挂起的时间比服务器的超时时间还要长,所以CGI被系统kill掉了。

3、模块没有编译到apache里。

等等……

?

既然有可能是CGI程序的错误,会不会是模块加载过程中出错了呢?

然后我回去查看了apache的配合,出了正常的系统模块,我们还load了一个自己的模块,开始猜想这个问题的关键点在这里,然后review了一下这个模块。

经过询问同事发现需要先打开一个该模块的客户端才能成功加载这个模块。

?

所以先启动这个客户端,再启动apache,顺利提供服务。

到这里,问题就解决了……

?

----EOF-----

?

扩展阅读:

?

Linux signal:http://www.kernel.org/doc/man-pages/online/pages/man7/signal.7.html

?

标准的POSIX.1-1990?linux信号量:


?