Apache重启,如果失败?

如果apache无法重新启动,它会继续运行,但不closures它的以前的实例? 所以,如果我在服务器上工作,我重新启动Apache并失败,这将保持我的网站上运行的以前的configuration?

如果你的configuration被破坏,即使configuration重载(通过SIGHUP)也会导致Apache退出。

你可以使用apachectl来做一个简单的configurationtesting。 要小心,因为这是一个很好的检查语法错误,它不会抓住一切。 完整的命令是:

apachectl configtest

而且,许多发行版在初始化脚本中都包含了一个用于configtest的封装器。

如果你告诉apache重新启动,它将在尝试重新启动之前完全closures,如果在你的configuration语法中有错误的话,就会让你感冒。

如果你告诉apache 优雅的重启 ,那么,除了它不会杀死你的用户下的进程,apache将首先检查你的configuration文件的语法错误。 如果发现任何,它将不会重新启动。

当我进行configuration更改时,我几乎总是使用优雅的; 有几个选项(例如ServerLimit)需要完全重新启动,但优雅的应该是你的默认命令。

如果你重新启动服务(因为你改变了configuration文件,维护等),它实际上会停止并尝试再次启动它,如果它失败了,服务本身将不可用。

华纳说,你需要检查你的configuration文件,并进行testing,以确保它不包含错误,所以你的服务将再次可用(成功的启动/重启)

但只要你不修复configuration文件中的问题,没有实例可用(没有www服务)

有一点我们要担心的是所有的日志文件都存在并且可以写入。 Configtest不会遇到创build或写入日志文件的问题,因此可以防止服务器正确地重新启动,并且平稳重新启动似乎不会阻止该问题。