我总是使用这个命令:
shutdown -r now
但是,有时会导致MySQL问题。
什么是重新启动CentOS最优雅的方式?
我见过:
reboot
和
halt
我怎样才能轻轻地重启机器?
没有比这些命令更好的方式来重新启动服务器。
reboot
版本(> 2.74)将启动shutdown
。 无论您使用的是什么命令,现代发行版都将涵盖所有任务。 基本上它们都启动SysV (CentOS <7)或systemd (CentOS> = 7)脚本的closures运行时间(为了便于阅读,我将其称为init脚本)。
使用init脚本逐步停止在通常运行级别 “S”下注册的所有服务。 单独的init脚本可能会有一个超时,就像CentOS中的MySQL初始化脚本一样。 当给出停止参数并且守护程序不会在相当长的时间内closures时,脚本将停止并退出,从而导致失败。 关机过程将继续,如果没有错误,只需花费更长时间,可能会打印警告。 最后,当所有的init脚本执行完毕,不可避免的将会发生:所有正在运行的进程都会得到一个SIGTERM
信号,并在几秒钟之后(2或5)得到一个SIGKILL
。 这将在ACPI调用完成之前清理剩下的部分,以真正重新启动或closures系统。
一个例外是使用带有-f
选项的reboot
命令,这将跳过执行init脚本并直接重启系统。
你将会更好地解决你的忧虑的根源:MySQL不能正常closures。
通常这是由于守护进程能够安全退出之前需要完成的大量工作。 我曾经有一个MySQL实例+300.000表,超过一个小时才能退出。 在使用大量缓冲区和稀疏的I / O可用性的系统中也可能发现类似的问题。
CentOS 6.x的正常closures应该通过以root用户身份执行:
shutdown -h now
这将试图在正常closures服务器之前停止所有正在运行的服务。
使用这个命令还可以防止mySQL套接字问题。
同样,为了平稳的重启:
reboot -h now
你可以在这里阅读以前有关类似问题的答案:
在向最终用户和客户提供远程指令时,我指示他们使用poweroff
closures系统并closures系统。
如果他们想要热启动,我build议他们使用reboot
命令。
我想可以这么说, 发出Ctrl-Alt-Delete
也可以实现这一点;)
我使用命令“init 6”。
init 6告诉init进程closuresinit文件中写入的所有派生进程/守护进程(与启动顺序相反),最后调用shutdown -r now命令重新启动计算机。
更多的信息可以在这个问题上find。
我有一种感觉,你可能不喜欢这个答案,但这个答案包括一些其他人都没有考虑的见解。 。 。 你写:
我总是使用这个命令:
关机-r现在
但是,有时会导致MySQL问题。
这里的问题不是你的关机方法,是一个无法正常处理关机的软件; MySQL的。
你可以真正解决这个问题的唯一方法是replaceMySql(PostgreSql是一个很好的替代品),或者写一个自己的closures脚本,让FIRST像宝宝一样控制MySql,当它很高兴被closures时,closures系统。
作为一个专门从事数据库系统工作超过26年的人,我可以告诉你,MySql只是在最近几年才开始关于数据库系统最重要方面的能力为了 – 数据安全/完整性。 以前,他们对这些方面的关注较less,对性能的关注也较less。 但是如果你失去了数据,那么优秀的performance呢? 在某些应用程序(如Netflixstream媒体video录制)中,您看到的是什么点,绝对保真度可能不是特别重要,甚至可能是您的客户,例如在失败后备份video。 但在银行体系中,这是一个史诗级的灾难。 只有数据所有者才能知道什么是对的。