标题问的是 Linux,但问题描述讲 MySQL,考虑到大同小异我就讲讲 MySQL 吧。
reload 会给MySQL进程发送一个 SIGHUP 信号,MySQL 接下来会重新加载权限表、配置文件,重新打开日志文件,重新打开host解析缓存和连接池(thread cache)。
restart 则会发送 SIGTERM,使MySQL关闭。关闭后,重新启动 MySQL。
两者的区别相信题主也看出来了,reload 可以在不中断服务的情况下重读配置,切换(切割)日志文件等工作,常常引起混淆的是:这些feature并非由操作系统带来,而是应用程序根据不同的信号做出的设计。所以并不是每一个应用程序都有所谓的 reload 和 restart,其实现当然也不尽相同。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。