我有一个PHP脚本可以修改httpd.conf文件,因此我需要自动重新加载它在Apache中。
在Linux上,有优雅重启(graceful restart),但在Windows上(我使用restart命令)会终止所有当前连接。在Windows上是否有像优雅重启一样的命令?是否有其他解决方法?
我有一个PHP脚本可以修改httpd.conf文件,因此我需要自动重新加载它在Apache中。
在Linux上,有优雅重启(graceful restart),但在Windows上(我使用restart命令)会终止所有当前连接。在Windows上是否有像优雅重启一样的命令?是否有其他解决方法?
是的,你应该使用-k开关。
httpd.exe -k restart or apache.exe -k restart
此外还有更多信息,http://www.zrinity.com/developers/apache/usage.cfm
编辑:
这不应该是 Graceful 的重点。请注意我使用了-k
。这不同于正常的重启。它允许当前会话完成其任务,同时正在重新读取配置文件,这样它将立即开始接收新请求。
从文档中获取:
USR1或优雅信号导致父进程建议子进程在其当前请求之后退出(如果它们没有提供任何服务,则立即退出)。父进程重新读取其配置文件并重新打开其日志文件。当每个子进程死亡时,父进程将其替换为新一代配置的子进程,该子进程立即开始提供新请求。
http://httpd.apache.org/docs/2.2/stopping.html#graceful
它正在做你要求的事情。
编辑2:
添加此链接并提供两个可能的版本,因为有些人认为只有一种特定的方法可以做某件事,而不是自己搜索。
http://httpd.apache.org/docs/2.4/platform/windows.html#wincons
我认为我将删除此答案,因为要么人们无法阅读,要么如果某人无法使用它会收到不支持的投票。由不同开发者制作的不同版本的Windows。如果它不起作用,请寻找他们的答案。即使Linux也有不同的命令取决于发行版。天哪
Apache.exe
,一些使用httpd.exe
。如果你在命令提示符中这样做,你不需要在 Windows 中使用扩展名。那也是我提供链接的原因。而且这也是一个例子。无论操作系统如何,主要线索都是 -k 选项。你有没有仔细阅读?所以那是一个毫无根据的负评。 - Panama Jack