Apache重啟失敗

Apache重啟失敗

我的伺服器負載很高,我停止了 Apache2,直到使用killall -9 apache2 負載減輕。啟動 Apache2 時發生錯誤:

*# /etc/init.d/apache2 restart * 重新啟動Web 伺服器apache2 httpd (pid 4457?) 未運作(98)位址已在使用中:make_sock:無法綁定到位址0.0.0.0:80 沒有可用的偵錯聽套接字,正在關閉down 無法開啟日誌*

然後我 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`

我的強調。

相關內容