关机或重启会改变整个系统的可用性。执行前应确认目标主机、获得授权、通知已连接的用户,并确保重要的写入、备份和维护任务能够完成。在远程系统上,还要保留独立的控制台或恢复通道,以防计算机无法重新上线。
初始化 · 第 7 课
电源状态
学习如何安排、取消并安全验证 Linux 关机和重启操作。
安全关闭电源
在基于 systemd 的发行版上,可用以下命令请求有序关闭电源:
$ sudo systemctl poweroff
传统的 shutdown 接口也很常见:
$ sudo shutdown -h now
有序关机会要求服务停止、卸载文件系统,然后改变计算机的电源状态。不要把强制重启或按下物理电源开关当作普通的快捷方式;两者都可能中断写入,使数据或服务处于不一致状态。
关闭远程生产主机的电源之前应该做什么?
安排和取消关机
通过安排关机时间,给用户和工作负载留出准备时间。+m 形式表示从现在起多少分钟:
$ sudo shutdown -h +4
该命令安排在四分钟后停止系统或关闭电源,并向已登录用户发送警告。如果维护延期,应在截止时间前取消待执行的关机:
$ sudo shutdown -c
不要认为发出警告就意味着操作必然安全。应检查活动会话和系统特有的工作负载;如果服务或集群有规定的排空流程,也要遵循该流程。
哪个命令会安排在四分钟后关机?
重启系统
需要让计算机停止后再次启动时,应进行有序重启:
$ sudo systemctl reboot
常见的等效兼容命令包括:
$ sudo shutdown -r now
$ sudo reboot
重启前,应确认加密磁盘、启动配置、网络和必需服务能够在没有当前交互式会话的情况下恢复。如果其他系统依赖该主机,应先协调故障转移或迁移工作负载。
哪个命令会通过 shutdown 请求立即进行有序重启?
区分停止系统与关闭电源
halt、poweroff 和 reboot 可能是初始化系统的兼容前端,但它们请求的最终状态不同。停止系统会终止正常系统运行;视平台和实现而定,此时可能仍然供电。关闭电源还会请求受支持的硬件切断供电。应优先选择能准确表达预期结果的命令,并查阅本地手册,因为兼容行为可能不同。
为什么应该区分 halt 和 poweroff?
验证结果
对于已安排的操作,应确认用户已收到通知,而且关键工作已经排空。重启后,应检查预期的内核和启动状态、失败单元、应用程序健康状况、存储挂载、网络可达性以及最近的启动日志。仅仅能够成功登录,并不能证明整个服务已经恢复。
$ uptime
$ systemctl --failed
$ journalctl -b -p warning
这些命令只是起点;对于实际工作负载,还应使用应用程序自身的健康检查。
什么最能证明重启后的应用程序已经就绪?
课程已完成
你已完成 电源状态
现在,你可以经过充分准备,以明确意图改变 Linux 电源状态,并验证操作结果。
确认目标、影响、授权和恢复通道。
正常操作时使用有序关机或重启命令。
当用户和工作负载需要提前通知时,安排延时关机。
维护计划变化时,取消待执行的关机。
计算机重新上线后,验证系统和应用程序健康状况。