apache2重载,重启,优雅有什么区别?

时间:2015-07-22 15:12:05

标签: apache2

我正在使用apache2进行项目,我想知道它们之间的区别是什么:

service apache2 restart
service apache2 reload
service apache2 graceful

感谢您的回答。

3 个答案:

答案 0 :(得分:21)

  1. “重启”和“重新加载”之间的区别

    • 重启=停止+开始
    • 重新加载=继续运行+重新读取配置文件。
  2. 正常重启和正常重启,可以参考文章:

    https://teckadmin.wordpress.com/2013/10/23/difference-between-graceful-restart-and-normal-restart/

答案 1 :(得分:14)

停止/重启的四种不同方式之间的主要区别在于主进程对其线程及其自身的处理方式。

请注意,Apache建议使用apachectl -k作为命令,对于systemd,命令将替换为httpd -k

apachectl -k stophttpd -k stop

这告诉进程终止所有线程然后退出

apachectl -k gracefulhttpd -k graceful

Apache会建议其线程在空闲时退出,然后apache重新加载配置(它不会自行退出),这意味着统计信息不会被重置。

apachectl -k restarthttpd -k restart

这类似于stop,因为该进程会终止其线程,但随后该进程会重新加载配置文件,而不是自杀。

apachectl -k graceful-stophttpd -k graceful-stop

这就像-k graceful,但不是重新加载配置,它将停止响应新请求,只有旧线程存在时才会生效。将此与httpd的新实例相结合可以非常强大,可以在更新配置文件时运行并发apach。

来源:https://httpd.apache.org/docs/2.4/stopping.html

建议:使用-k graceful除非主流程本身出现问题,在这种情况下,-k stop-k start-k graceful-stop和{{1}的组合是选择的选择。

答案 2 :(得分:5)

Seems like graceful and reload are the same for apache2

In /etc/init.d/apache2:

graceful | reload | force-reload)
# rest of the script
相关问题