如何安全地重启 ubuntu 服务器灯栈?

如何安全地重启 ubuntu 服务器灯栈?

我已经搜索过,所有资源都是关于如何执行重启的。

我知道如何重新加载、重新启动、停止 Apache、MySQL 等以及如何重新启动操作系统。

我的问题是如何安全地执行服务器重启。我刚刚安装了一些需要重启服务器的更新,因为有一些内核更新。

这是 Ubuntu Server 13.10,在专用服务器上。我通过 SSH 连接。

该服务器运行正常,并且它是一台生产服务器,所以我想知道是否有正确/正确的程序可供遵循,或者 sudo shutdown -r now 或 sudo restart 是否真的是所需要的,或者我应该先手动关闭数据库等主要进程,这样我才知道它们已安全关闭,然后再重新启动主机操作系统?

我的 Percona DB 服务器(主要是 InnoDB)会正确关闭吗?还是会直接放弃?Ubuntu 服务器在放弃这些进程并重新启动之前,会如何小心谨慎地确保所有进程都已刷新到磁盘,并发出“我可以停止”信号?

谢谢。

答案1

  1. 如果服务器无法启动,请制定一个如何处理的计划内核升级后
  2. 关闭面向客户端的网络连接(Web 服务器),这样就不再对数据库进行写入
  3. 停止数据库(可以按照建议使用初始化脚本按顺序关闭服务)
  4. 发出重启命令

答案2

您应该配置系统 init 脚本,以便在切换运行级别并满足依赖关系时自动按正确顺序执行这些步骤(首先关闭 apache;然后关闭 MySQL,等等)。这实际上是 Linux 系统上存在的 init 脚本层次结构的目的。此层次结构的设计目的是让您能够执行满足所需条件的正常关闭。

内核肯定会将所有内容刷新到磁盘,并且通常关机将向每个进程发送终止“TERM”信号,以尝试让每个进程正常退出。因此,您真正需要做的唯一事情就是确保每个应用程序都按正确的顺序关闭,方法是将其放在 init 脚本中的正确位置。

init 脚本和相关控制文件位于 /etc/init.d 和 /etc/default

答案3

根据我的经验,维护重启应该从外层开始。因此,首先是应用服务器(apache,然后是 php-fpm 或 uwsgi 等),然后是数据库。如果您和我一样谨慎,请运行 htop 和 netstat 以确保所有东西都已关闭。然后,如果您想确保硬盘缓存已刷新,您可以调用 sync。

剩下的就是重新启动。

在大多数情况下,只需重新启动就可以了,但安全才是上策。

相关内容