ghb*_*att 6 httpd rhel5 httpd.conf service apache-2.2
这是我对问题的第一个迹象:
$ sudo /sbin/service httpd restart
Stopping httpd: [FAILED]
Starting httpd: no listening sockets available, shutting down
Unable to open logs
[FAILED]
Run Code Online (Sandbox Code Playgroud)
我知道 httpd 正在运行
$ ps -ef | grep httpd | grep -v grep
apache 9619 20181 0 07:08 ? 00:00:03 /usr/sbin/httpd
apache 10092 20181 0 Jan24 ? 00:00:07 /usr/sbin/httpd
apache 13086 20181 0 06:09 ? 00:00:00 /usr/sbin/httpd
apache 13717 20181 0 Jan25 ? 00:00:01 /usr/sbin/httpd
apache 14730 20181 0 07:13 ? 00:00:01 /usr/sbin/httpd
apache 16359 20181 0 09:54 ? 00:00:00 /usr/sbin/httpd
root 20181 1 0 2011 ? 00:00:01 /usr/sbin/httpd
apache 21450 20181 0 09:55 ? 00:00:00 /usr/sbin/httpd
Run Code Online (Sandbox Code Playgroud)
它使用端口 80 和 443
$ sudo netstat -lnp | grep :80
tcp 0 0 :::80 :::* LISTEN 9619/httpd
$ sudo netstat -lnp | grep :443
tcp 0 0 :::443 :::* LISTEN 9619/httpd
Run Code Online (Sandbox Code Playgroud)
所以我假设我收到消息“没有可用的侦听套接字”,因为 httpd 无法停止释放端口 80 和 443。
我正在使用 RHEL 5.7 版:
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
Run Code Online (Sandbox Code Playgroud)
我可以看到一堆为 httpd 运行的进程:
$ pgrep httpd
9619
10092
13086
13717
14730
16359
20181
21450
Run Code Online (Sandbox Code Playgroud)
什么可以阻止 httpd 停止?如果我终止了 httpd 的进程,我是否能够毫无问题地启动 httpd?
/etc/init.d/httpd 中的 stop 函数使用 pidfile:
killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpd
Run Code Online (Sandbox Code Playgroud)
可能是 pidfile/var/run/httpd.pid
已过时或丢失(您过去是否可以在不使用/etc/init.d
脚本的情况下启动 httpd或service
?)。您可以使用ps -ef |grep http
.
嗯,只是sudo kill 20181
。然后像往常一样启动服务。之后尝试重新启动。
如果它再次发生,您可能应该调查为什么 pid 文件与进程表不一致。
归档时间: |
|
查看次数: |
27649 次 |
最近记录: |