Apache如何“build议”孩子停下来优雅地停下来

在Apache Web服务器文档中,我发现可以使用apachectl -k graceful-stop或WINCH信号来停止Apache,而当您这样做时:

WINCH或优雅停止信号会导致父进程通知孩子在当前请求后退出(或者如果他们没有提供任何服务,立即退出)

但是,我似乎无法find任何certificate“build议”儿童退出的确切内容。 它发送给他们一个信号吗? 别的东西?

主进程采取信号,但与孩子的IPC是通过pipe道。

虽然pipe理员仅通过信号控制主服务器,但主服务器使用信号或pipe道来控制子服务器的数量,即死亡pipe道。 (Apache 1.3只使用信号)。

平稳的重启应该主要影响闲置的子服务器进程。 虽然Apache 1.3刚刚向进程组发送了一个SIGUSR1信号,但是Apache 2把“死亡之字”的项目放入死亡pipe道(pod)中,繁忙的子服务器会在处理请求之后检查pipe道在这两种情况下,它们都设置了die_now标志,并在请求 – 响应循环中开始新的迭代时终止

Apachebuild模项目4.3.3.5.2主服务器控制子服务器

请注意,这可以控制subprocess,而不必立即响应信号。

这个分析来自早期的httpd版本。 看看精确的当前行为的源代码,但在高层次,这仍然适用。