Debian

阿帕奇和系統

  • March 14, 2018

我剛剛開始使用引入了 systemd 的 Debian 8。我對圍繞 SysV 與 systemd 的政治不感興趣,但我很困惑,尤其是在 Apache (2.4) 周圍。

現在有兩種重啟apache的方法:

  1. apache2ctl restart或者apache2ctl graceful
  2. systemctl restart apache2它似乎systemctl restart apache2.service做同樣的事情。

他們似乎做不同的事情(!)。我不明白其中的區別。

我似乎需要同時做這兩件事才能獲得正確的完全重啟工作。例如,在更改了 php 模組的配置文件後,它只記錄了兩者之後的更改。

還有一次apache2ctl configtest失敗並且在systemctl status apache2我修復了配置中報告了失敗,以便這些命令中的第一個很高興,重新啟動apache2ctl restart但 systemd status 命令仍然將其列為未執行並且存在舊的配置問題。

我保證會花很多時間深入閱讀有關 systemd (RTFM) 的內容,但同時在與 apache 相關的實際層面上,我會很感激建議。

如果您想要一致性,請始終使用systemctlfor stopstartrestart. 最終使用該apache2ctl程序 - 現在通過/etc/init.d/apache2腳本但將來可能來自本機systemd單元文件。

systemd不知道您何時apache2ctl直接使用過,可能會導致(正如您所發現的)在實際執行良好時systemd認為apache2仍處於故障狀態的情況。

對於configteststatus,使用apache2ctl。他們只是查詢apache而不改變它的狀態。

引用自:https://unix.stackexchange.com/questions/240528