Apache-2.2

無法在 CentOS 上為 Apache 2.4.2 創建有效的 init.d

  • May 27, 2015

我從原始碼在 CentOS 上建構了 apache 2.4.2,現在正試圖創建一個 init.d 腳本來配合它。一個朋友給了我一個腳本,但它從來沒有輸出成功或失敗,我不喜歡它。我在 tar 中找到了一個 httpd.init 腳本文件。它只需要更改 apache 的位置,但除此之外它似乎可以工作。但是,它無法停止 httpd。它會開始就好了。以下是我目前在 /etc/init.d/httpd 中的腳本。我在另一個主題上找到:Restarting the httpd service in RHEL 返回“Stopping httpd:$$ FAILED $$“ - 我該如何解決這個問題?檢查是否在 /var/run 目錄中創建了一個 pid 文件,但即使直接使用 service httpd start 或 init.d 腳本啟動,它也沒有在那裡創建。我仍然相當linux新手,所以請盡可能多地解釋。我是一個快速學習者。

誰能幫我找出這個腳本有什麼問題?我正在執行 CentOS 6.3 x86_x64。

http://pastebin.com/sucmvBF6

我不喜歡你的腳本(但我在分發提供的腳本中也見過很多次)是 httpd-pid-file 的位置有點硬編碼。

這可能是你的問題。如果那個硬編碼的位置和文件名與 httpd 配置不匹配(PidFilehttpd.conf中有指令),你的 killproc 將不會做任何智能。

因此,要麼你應該為 PidFile 解析你的配置文件並回退到編譯的標準,或者使用apachectl(使用你的配置文件作為參數)來停止 httpd。

恕我直言,後者更好,並且還涵蓋了 pid 文件消失(偶然)的情況。

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