今天更新完程序,重启apache的时候,第一遍正常重启,1分钟之后第二次重启的时候报错了。
执行service httpd restart之后:
报错:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
此时查看apache状态已经处于stop.
执行 ps -ef | grep httpd 命令查看端口占用的时候,已经没有httpd进程,apache挂掉了。
这时需要先去查看日志
cat error_log之后找到这一句(最新的报错内容):
suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
顺势找到对应的博客,地址:https://www.shikexu.com/archives/835
结合实际情况,符合博主所说的:用户进程通信信号量达到限制导致
查看解决办法:
执行命令查看信号量:ipcs -s
-a:显示全部可显示的信息; -q:显示活动的消息队列信息; -m:显示活动的共享内存信息; -s:显示活动的信号量信息。
正如博主所展示的一样,服务器在apache未启动的情况下,占用了很多通道
接下来,清除信号量
ipcs -s | perl -ane '/^0x00000000/ && `ipcrm -s $F[1]`'
清除后重启apache,问题解决