电脑港
白蓝主题五 · 清爽阅读
首页  > 软件应用

服务器关机流程:别急着按电源键,这三步漏一步就可能丢数据

上周朋友老张的公司网站突然打不开,一查发现数据库挂了。排查半天,原来是运维小哥半夜远程关服务器,直接拔了电源——结果 MySQL 的 InnoDB 日志没刷完,第二天启动直接报错。

关机不是断电,是让系统自己收好摊子

很多刚接触服务器的人以为“关机=按一下物理按钮”,其实 Linux 或 Windows Server 上一次规范的关机,核心是让操作系统有足够时间:停止服务、刷新缓存、卸载文件系统、同步磁盘写入。跳过这些步骤,轻则日志错乱、文件损坏,重则整个 /var/lib/mysql 或 /etc 目录变砖。

Linux 服务器标准关机流程

登录到服务器后(SSH 或控制台),优先用 shutdown 命令:

sudo shutdown -h now

这条命令会通知所有进程准备终止,发送 SIGTERM 信号,等 10 秒再发 SIGKILL 强制结束残留进程,最后调用内核关机流程。如果想 5 分钟后关机,可以写成:

sudo shutdown -h +5 "系统将重启维护,请保存工作"

看到终端输出 System haltedPower down 才算真正完成。此时风扇停转、LED 指示灯熄灭,才可断电。

Windows Server 别用 Alt+F4

图形界面下,点开始菜单→“关机”是安全的;但远程桌面里千万别用 Alt+F4 关掉远程窗口——那只是断开了连接,系统还在跑。正确做法是打开 PowerShell(管理员权限),运行:

Stop-Computer -Force

或更稳妥的带延迟版本:

Stop-Computer -Force -Confirm:$false

如果是 Core 版本无界面,直接在 CMD 中输入:
shutdown /s /t 0

还有几个容易踩的坑

• NFS 或 CIFS 共享挂载点没 umount 就关机?大概率下次 mount 失败,得进救援模式修复。
• Docker 容器正在写日志,docker stop 还没跑完就 shutdown?容器 rootfs 可能处于半提交状态。
• 某些监控脚本监听了 /proc/sys/kernel/sysrq,误开 SysRq 键盘组合(比如 Alt+SysRq+O)会强制关机,绕过所有清理逻辑——这种操作只该出现在崩溃急救场景。

说白了,服务器关机就像合上一本正在写的笔记本:先写完最后一行,再盖上封面,最后放进抽屉。跳过前面两步,光把本子塞进抽屉,里面的内容早乱套了。