我剛開始使用 Debian 8,它引入了 systemd。我對 SysV 與 systemd 之間的政治不感興趣,但我很困惑,尤其是 Apache (2.4)。
現在有兩種方法可以重新啟動apache:
apache2ctl restart
或者apache2ctl graceful
systemctl restart apache2
它似乎systemctl restart apache2.service
做了同樣的事情。
他們似乎做不同的事情(!)。我不明白其中的差別。
我似乎需要同時執行這兩件事才能正確地完全重新啟動工作。例如,在更改 php 模組的設定檔後,它只注意到兩者之後的變更。
另一次apache2ctl configtest
失敗,並且在systemctl status apache2
我修復了配置中報告了失敗,以便這些命令中的第一個命令很滿意,重新啟動,apache2ctl restart
但 systemd status 命令仍然將其列為未運行並存在舊的配置問題。
我保證在某個時候會花很長時間深入閱讀有關 systemd (RTFM) 的內容,但同時在與 apache 相關的實際層面上,我希望得到建議。
答案1
如果您想要一致性,請始終使用systemctl
for stop
、start
和restart
。最終使用該apache2ctl
程式 - 現在通過腳本,但將來/etc/init.d/apache2
可能來自本機單元文件。systemd
systemd
不會知道你什麼時候apache2ctl
直接使用過,可能會導致(正如你所發現的)一種情況,即當它實際上運行良好時,systemd
thinks仍然處於錯誤狀態。apache2
對於configtest
和status
,使用apache2ctl
.他們只是查詢 apache 而不改變它的狀態。