我有一个修改httpd.conf文件的PHP脚本,所以我需要在Apache中自动重新加载它。
在Linux上,可以正常重新启动,但在Windows上(我使用重新启动命令),它会终止所有当前连接。在Windows上有没有像平滑重启这样的命令?有没有解决这个问题的办法?
发布于 2013-06-27 06:46:29
是的,您应该使用-k开关。
httpd.exe -k restart or apache.exe -k restart 这里有更多的信息。http://www.zrinity.com/developers/apache/usage.cfm
编辑:
这不应该是优雅的意义所在。注意,我使用的是-k。这与正常的重启不同。它让当前会话在重新读取配置的同时完成任务,因此它将立即开始接受新的请求。
从文档中:
USR1或graceful信号会导致父进程建议子进程在其当前请求之后退出(如果子进程没有提供任何服务,则立即退出)。父级重新读取其配置文件并重新打开其日志文件。当每个子节点死亡时,父节点将其替换为新一代配置中的一个子节点,该配置立即开始为新请求提供服务。
http://httpd.apache.org/docs/2.2/stopping.html#graceful
它正在做你所要求的事情。
编辑2:
添加这个链接,并给出了两种可能的版本,因为有些人认为你只有一种具体的方法来做一些事情,而不是自己搜索。
http://httpd.apache.org/docs/2.4/platform/windows.html#wincons
,我想我会删除这个答案,因为要么人们不识字,要么如果它对某人不起作用,它就会得到一个DV。不同的开发者制作了不同的windows版本。如果不起作用,请从他们那里寻找答案。根据发行版的不同,Linux也有不同的命令。天哪,
发布于 2016-07-06 19:08:29
在最新的Apache2.4.20Restart中,"httpd -k VC10“命令实际上做了一个正常的重启。它不会中断任何连接,例如,如果有人正在从您的服务器下载某些内容,它不会中断此过程。另一个证据是"-k restart“不会重置mod_status提供的服务器统计数据,甚至不会改变"Restart Time”值。
虽然"httpd -k graceful“和"httpd -k graceful-stop”命令在Windows中可用,但它们不会工作,并给出错误“and‘t make a socket”。
发布于 2015-08-21 06:25:18
抱歉,@巴拿马杰克,但我也不认为它是在解决问题,我读了你的两个链接(打印和阅读)。我认为令人困惑的部分是第一个链接使用httpd -k重新启动和httpd -k优雅,而Windows的第二个链接只使用httpd -k重新启动,从那个链接我不清楚重新启动是优雅的,因为它在第二个链接中解释(对于Unix)。
https://stackoverflow.com/questions/17331678
复制相似问题