我刚刚开始使用 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 而不改变它的状态。