Apache 和 systemd

art*_*bot 8 debian systemd apache-httpd

我刚刚开始使用引入了 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 相关的实用层面上,我会很感激建议。

cas*_*cas 8

如果你想保持一致,始终使用systemctlstopstartrestart。最终使用该apache2ctl程序 - 现在通过/etc/init.d/apache2脚本,但systemd将来可能来自本机单元文件。

systemd不知道你什么时候apache2ctl直接使用过,可能会导致(正如你发现的那样)systemd认为apache2实际运行良好时仍处于错误状态的情况。

对于configteststatus,使用apache2ctl。他们只是在不改变其状态的情况下查询 apache。

  • `systemctl status apache2` 告诉你服务是否正在运行。`apache2ctl status` 为您提供来自 `mod_status` 的输出(如果它已启用和配置)。 (3认同)