Apache-2.4

為什麼 Apache 試圖在啟動時殺死一個程序,為什麼這會導致 Apache 啟動失敗?

  • December 23, 2020

我正在安裝一個新證書,就像我以前做過幾十次一樣。我複制了名稱 crt、key、bundle 文件作為備份,並為新文件提供了舊文件的名稱。然後我重新啟動了apache。它失敗了。它給出瞭如下所示的錯誤。

我嘗試重新啟動伺服器。再次檢查,沒有區別。我刪除了新上傳的文件並替換為備份副本,然後再次嘗試重新啟動。它仍然給出相同的資訊。我以前從未見過這個錯誤。配置文件沒有任何更改。

1)了解Apache內部工作原理的人,為什麼會試圖殺死一個不存在且找不到的程序?

2)既然它不存在,那為什麼會阻止 Apache 啟動?

須藤 systemctl 狀態 httpd:

● httpd.service - The Apache HTTP Server
  Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Active: failed (Result: exit-code) since Thu 2018-12-06 23:12:20 EST; 9s ago
    Docs: man:httpd(8)
          man:apachectl(8)
 Process: 3615 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
 Process: 3613 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 3613 (code=exited, status=1/FAILURE)

Dec 06 23:12:20 myHostsystemd[1]: Starting The Apache HTTP Server...
Dec 06 23:12:20 myHostsystemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 06 23:12:20 myHostkill[3615]: kill: cannot find process ""
Dec 06 23:12:20 myHostsystemd[1]: httpd.service: control process exited, code=exited status=1
Dec 06 23:12:20 myHostsystemd[1]: Failed to start The Apache HTTP Server.
Dec 06 23:12:20 myHostsystemd[1]: Unit httpd.service entered failed state.
Dec 06 23:12:20 myHostsystemd[1]: httpd.service failed.

sudo journalctl -xe 只是說同樣的話。

伺服器執行centOS 7。Apache版本為2.4.6。

您的服務部門已kill要求ExecStop採取行動,所以這不是 apache 試圖殺死他的孩子,而是systemd試圖殺死已經停止存在的程序。

而apache無法啟動的主要原因就是這個程序退出。我敢打賭,原因在 apache 的 main 中說明error_log

  • RHEL / Red Hat / CentOS / Fedora Linux Apache 錯誤文件位置:/var/log/httpd/error_log
  • Debian / Ubuntu Linux Apache 錯誤日誌文件位置:/var/log/apache2/error.log
  • FreeBSD Apache 錯誤日誌文件位置:/var/log/httpd-error.log

引用自:https://serverfault.com/questions/943254