Apache 重启失败

Apache 重启失败

我的服务器负载很高,我使用 killall -9 apache2 停止了 Apache2,直到负载降低。启动 Apache2 时出现错误:

*# /etc/init.d/apache2 restart * 重新启动 Web 服务器 apache2 httpd(pid 4457?)未运行(98)地址已在使用中:make_sock:无法绑定到地址 0.0.0.0:80 没有可用的监听套接字,正在关闭无法打开日志*

然后我 lsof | grep "*.www" 并使用端口 80 终止该进程。

我的问题是,即使我执行了 kill all 命令后,进程怎么还能使用端口 80?

答案1

http://httpd.apache.org/docs/2.2/stopping.html

为了停止或重新启动 Apache,您必须向正在运行的 httpd 进程发送信号。发送信号的方法有两种。第一种,您可以使用 unix kill 命令直接向进程发送信号。你会注意到你的系统上运行着许多 httpd 可执行文件,但你不应该向除父进程之外的任何进程发送信号,其 pid 在 PidFile 中。也就是说,您永远不需要向父进程以外的任何进程发送信号。您可以向父进程发送四个信号:TERM、USR1、HUP 和 WINCH,稍后将对其进行描述。

要向父级发送信号,你应该发出如下命令:

  kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

我的重点。

相关内容