我正在为项目使用apache2,我想知道两者之间的确切区别是什么:
service apache2 restart
service apache2 reload
service apache2 graceful
?
谢谢您的回答。
最佳答案
四种不同的停止/重新启动方式之间的主要区别在于,主进程对其线程以及线程本身的处理方式。
请注意,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
这与停止类似,因为该进程会终止其线程,但随后该进程将重新加载配置文件,而不是终止自身。apachectl -k graceful-stop
或httpd -k graceful-stop
这就像-k graceful
一样,但是它不会重新加载配置,而是停止对新请求的响应,并且仅在存在旧线程的情况下存在。将其与httpd
的新实例结合在一起可以非常强大,可以在更新配置文件时运行并发apatch。
资料来源:https://httpd.apache.org/docs/2.4/stopping.html
建议:除非主过程本身有问题,否则请使用-k graceful
,在这种情况下,可以选择-k stop
和-k start
或-k graceful-stop
和-k start
的组合。
关于apache2 - apache2 reload,restart,graceful有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31567165/