apache重启失败:name-based shared memory failure的解决办法

发布时间:2020-07-28编辑:脚本学堂
apache重启失败:name-based shared memory failure的解决办法

apache重启失败:name-based shared memory failure的解决办法,有遇到类似问题的朋友可以参考下。

新编译apache的module,在make install的时候没有停止apache,可能会导致apache重启失败。
典型错误信息:File exists: unable to create scoreboard "/usr/local/apache/logs/httpd.scoreboard" (name-based shared memory failure)

如果将错误定位在httpd.scoreboard文件上,删除或者改名往往并不能解决问题。其实错误的重点在于:shared memory。

真正原因是:因为替换了正在工作的so文件,造成关闭时无法正常释放内部共享内存,再次启动时检查到错误导致apache无法启动。

解决办法:
ipcs -m -p

检查占用共享内存的进程,返回数据格式:
shmid owner cpid lpid

一般cpid和lpid是一致的,在ps中查找,如果cpid和lpid都不存在,那么说明这块共享内存是没有被释放的。
ipcrm -m <shmid>
用上面查出的pid的shmid,通过上面的命令释放共享内存

然后再检查一遍是否释放了:ipcs -m -p
重新启动apache就OK了。