apache2不在运行,但在端口80上侦听

我制作了一个运行一个网站的私有Amazon EC2映像,然后开始安装redmine。 在所有安装完成之后,即将重启Apache我遇到了以下问题(抱歉,您可能需要放大以查看屏幕截图): 在这里输入图像说明

我对发生的事情的理解是,apache2没有运行,但它正在监听端口80.然后我试着: 在这里输入图像说明 这给出了相同的混淆,但一致的结论,apache2没有运行,但我相信它是进程18304这是apache2侦听端口80.最终,我不得不杀死进程,并重新启动apache的工作。 有人可以向我解释什么可能导致这个和一个修复?

UPDATE1:

合成器之后build议使用lsof在这里输入图像说明 这与以前不同的过程完全一样。

有时,当你停止apache(或任何其他程序)的脚本不能正确closures该程序,因为它等待的东西(例如IO),但删除pid文件。 所以脚本beleives apache没有运行,因为没有pid文件,但apache运行,或者有时不真正rund但卡在和坐在端口。

在这些情况下,你必须杀死进程,你可以启动程序。 我已经看到了很多这种从apache,slapd,cirus等卡住的进程。有时候会发生。

尝试运行

lsof -n | grep TCP 

另外.. apache2控制器并不总是最可靠的,它只是检查一个PID文件,而不是实际的过程。

 ps -aef | grep httpd 

$ 1表示你仍然有一个httpd运行。

正如海报上面所说,使用

 lsof -n | grep TCP 

要么

 lsof -n | grep "*:www" 

另外,在Ubuntu中,它使用进程名称“apache2”,所以你应该检查它

 ps -ax |grep apache 

而不是grep httpd

 ps aux|grep apache 

你有看到

 /usr/share/apache2/ask-for-passphrase localhost:443 RSA 

如果是这样

其中一个站点包含带有密码的SSL证书。 所以当apache尝试在启动时启动时,如果没有人手动input密码,它将无法继续。

所以你有两个select来解决这个问题:

  1. 将SSLPassPhraseDialog指令添加到您的configuration。

  2. 删除您的密码 (不太安全)