如果 apache 无法重新启动,它会继续运行但不会关闭其先前的实例吗?因此,如果我在服务器上工作并重新启动 apache 并且失败了,这是否会使我的网站继续按照其先前的配置运行?
答案1
如果您的配置损坏,即使重新加载配置(通过 SIGHUP)也会导致 Apache 退出。
您可以使用apachectl
进行简单的配置测试。但要小心,因为它只是检查语法错误,并不能发现所有错误。完整命令如下:
apachectl configtest
此外,许多发行版在初始化脚本中包含了 configtest 的包装器。
答案2
如果您告诉 apache 重新启动,它将在尝试重新启动之前完全关闭,如果您的配置语法有错误,您将陷入困境。
如果你告诉 Apache优雅地重启那么,除了不终止用户下级进程的优点之外,apache 还会首先检查配置文件中是否存在语法错误。如果发现任何错误,它就不会重新启动。
当我进行配置更改时,我几乎总是使用 graceful;有几个选项(例如 ServerLimit)需要完全重启,但 graceful 应该是您的默认命令。
答案3
如果您重新启动该服务(因为您更改了配置文件、维护等),它实际上会停止并尝试重新启动它,如果失败,则服务本身将不可用。
正如华纳所说,您需要检查您的配置文件并对其进行测试以确保它不包含错误,这样您的服务才能再次可用(成功启动/重新启动)
但只要您不修复配置文件中的问题,就不会有可用的实例(没有 www 服务)
答案4
我们要警惕的一件事是所有日志文件都存在并且可以写入。Configtest 不会捕获创建或写入日志文件的问题,因此这可能会阻止您的服务器正确重启,而优雅重启似乎无法阻止这种情况。