优雅地停止Apache


23

有没有一种方法可以在不终止执行请求的情况下停止Apache服务器,基本上是一种告诉它的方法-不接受任何更多的连接并在完成当前连接后将其关闭?

Answers:



12

apachectl -k graceful-stop这里使用:

WINCH或平稳停止信号使父进程建议子进程在其当前请求后退出(如果他们没有提供任何服务,则立即退出)。然后父级将删除其PidFile并停止侦听所有端口。父级将继续运行,并监视正在处理请求的子级。一旦所有子代都完成并退出,或者达到了GracefulShutdownTimeout指定的超时,父代也将退出。


1

请记住,默认情况下,sys-v init曾经用于平稳停止,而强制停止是一个额外的选择。仅当您运行通常会终止进程的自定义进程管理器时,才需要“特殊”选项来正常停止。


这个答案可能给人的印象是,由于systemd不是自定义流程管理器,因此不会终止该流程。然而,在默认情况下systemd还执行stopgraceful-stop为Apache。
米勒

4
@ B.Miller如果您的systemd执行停止而不是平稳停止,则这是特定于操作系统的错误,需要记录。Arch Linux和CentOS 7都可以正常停止。
哈拉尔德

Debian不会正常停止过
约翰·济慈

2
有趣的@JohnKeates ...也许这是Ubuntu 18.04特有的。18.04使用停止命令/usr/sbin/apachectl stop
B.米勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.