我正在为项目使用apache2,我想知道两者之间的确切区别是什么:

service apache2 restart
service apache2 reload
service apache2 graceful



谢谢您的回答。

最佳答案

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

请注意,Apache建议使用apachectl -k作为命令,对于systemd,该命令将替换为httpd -kapachectl -k stophttpd -k stop
这告诉进程杀死所有线程,然后退出
apachectl -k gracefulhttpd -k graceful
Apache将建议其线程在空闲时退出,然后apache重新加载配置(它不会自行退出),这意味着不会重置统计信息。
apachectl -k restarthttpd -k restart
这与停止类似,因为该进程会终止其线程,但随后该进程将重新加载配置文件,而不是终止自身。
apachectl -k graceful-stophttpd -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/

10-11 22:57