我正在使用apache2进行项目,我想知道它们之间的区别是什么:
service apache2 restart
service apache2 reload
service apache2 graceful
感谢您的回答。
答案 0 :(得分:21)
“重启”和“重新加载”之间的区别
正常重启和正常重启,可以参考文章:
https://teckadmin.wordpress.com/2013/10/23/difference-between-graceful-restart-and-normal-restart/
答案 1 :(得分:14)
停止/重启的四种不同方式之间的主要区别在于主进程对其线程及其自身的处理方式。
请注意,Apache建议使用apachectl -k
作为命令,对于systemd,命令将替换为httpd -k
apachectl -k stop
或httpd -k stop
这告诉进程终止所有线程然后退出
apachectl -k graceful
或httpd -k graceful
Apache会建议其线程在空闲时退出,然后apache重新加载配置(它不会自行退出),这意味着统计信息不会被重置。
apachectl -k restart
或httpd -k restart
这类似于stop,因为该进程会终止其线程,但随后该进程会重新加载配置文件,而不是自杀。
apachectl -k graceful-stop
或httpd -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