Apache-httpd dead but subsys locked

Apache-httpd dead but subsys locked

偏爱自由 发布于 2017-01-18 字数 94 浏览 1180 回复 1

这个错误 httpd dead but subsys locked

有谁知道代表什么么,我没找到,求大神恢复啊

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晚风撩人 2017-05-19 1 楼

找了很长时间,也就是这个地方最全些 XXX

While I was improving my LAMP module I ran in to a problem with Apache 2.2.15 on CentOS 6.2.
Apache wasn’t working with my new module so I decided to install it normally via yum and see what’s going on.
Got it installed just fine with:
yum install httpd

Ran sudo service httpd restart.
All went fine.

But now when I checked status:

service httpd status
httpd dead but subsys locked

Tried to delete the lock:
sudo rm -f /var/lock/subsys/httpd

Didn’t help. It’s still giving the same lock message. The Apache actually works as it’s serving my web pages but the service status is not working as it should. And this is a problem with my Puppet LAMP module.

UPDATE: As pointed out in the comments, here’s another related error message that you might get when you try to restart httpd:

service httpd restart
Stopping httpd: [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address 10.10.26.11:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]

I have also tried rebooting the box and updating packages with yum update but didn’t help.

I started examining httpd.conf and noticed that the PidFile variable was set to run/httpd.pid by default.
Changed it to point to /var/run:

PidFile /var/run/httpd.pid

And also changed the variable in /etc/sysconfig/httpd:

PIDFILE=/var/run/httpd.pid

Killed the httpd processes:
killall -9 httpd

Removed the lock:
sudo rm -f /var/lock/subsys/httpd

Restarted apache:
sudo service httpd restart

And now it works:

service httpd status
httpd (pid 14331) is running...

Now I wanted to test this again to confirm that this solution works so I restored my virtualbox snapshot from the time when apache was not installed on the CentOS. Installed it again same way with yum. Checked httpd status and it was stopped. Restarted the httpd service and it went OK. Checked the status now presuming that it would complain about the lock again:
httpd (pid 13298) is running…

It’s working!?!

It was the exact same setup when it was complaining about that lock. But now it worked right away. No idea what’s going on here.
Well as that didn’t confirm anything I had to try again:

Restored the VM snapshot. This is CentOS 6.2, installed on virtualbox from liveCD. Firewall disabled, sshd enabled.
Installed apache:
sudo yum install -y httpd

Status check:

service httpd status
httpd is stopped

Started apache:

sudo service httpd start
Starting httpd: [ OK ]

Status check:

service httpd status
httpd dead but subsys locked

Changed the pidfile variable in /etc/httpd/conf/httpd.conf from this:

PidFile run/httpd.pid

To this:

PidFile /var/run/httpd.pid

Changed the pidfile variable in /etc/sysconfig/httpd from this:

#PIDFILE=/var/run/httpd/httpd.pid

To this:

PIDFILE=/var/run/httpd.pid

Killed httpd processes:
killall -9 httpd

Removed any httpd locks:
sudo rm -f /var/lock/subsys/httpd

Restarted apache:

sudo service httpd restart
Stopping httpd: [ FAILED ]
Starting httpd: [ OK ]

Status check:

service httpd status
httpd (pid 6009) is running...

Finally confirmed that it’s working!

Oh and I will publish the improved LAMP puppet module as soon as I have time to test it.