Linux命令-reboot(重启系统)

Linux命令-reboot(重启系统)

    • 回滚与安全措施
    • 命令语法
    • 常用选项
    • 场景化实例
      • [1. 安全重启(推荐方式)](#1. 安全重启(推荐方式))
      • [2. 强制重启(紧急情况)](#2. 强制重启(紧急情况))
      • [3. 记录重启而不实际执行](#3. 记录重启而不实际执行)
      • [4. 重启前安全检查脚本](#4. 重启前安全检查脚本)
      • [5. 远程重启多台服务器](#5. 远程重启多台服务器)
      • [6. 使用 systemctl 重启](#6. 使用 systemctl 重启)
    • 与其他重启方式对比
    • 最佳实践

快速参考reboot 命令用于安全或强制重启 Linux 操作系统。reboot 会终止所有运行中的进程、卸载文件系统并重启硬件,是系统管理中需要谨慎使用的高危命令。

危险警告 :执行 reboot 会立即中断所有用户会话和运行中的服务,可能导致数据丢失。生产环境务必先通知用户、保存数据后再执行。

回滚与安全措施

如在执行前想取消:

  • reboot 执行前可用 shutdown -c 取消计划的重启
  • 使用 shutdown -r +5 "维护中" 代替直接 reboot,给自己 5 分钟缓冲
  • 关键 :重启前用 sync 同步磁盘缓存
bash 复制代码
# 取消计划重启
sudo shutdown -c

# 延迟重启(推荐替代 reboot)
sudo shutdown -r +5 "系统将在5分钟后重启,请保存工作"

# 取消上面的延迟重启
sudo shutdown -c

命令语法

bash 复制代码
reboot [选项]

常用选项

选项 说明
-f 强制重启,不调用 shutdown
-p 重启后关闭电源(相当于 poweroff)
--halt 停止系统但不关闭电源
-w 只写 wtmp 记录,不实际重启
-n 重启前不同步磁盘(危险)

场景化实例

1. 安全重启(推荐方式)

bash 复制代码
# 标准重启
sudo reboot

# 使用 shutdown 更安全(通知用户)
sudo shutdown -r now "紧急维护,系统即将重启"

# 延迟重启并广播消息
sudo shutdown -r +10 "系统计划在10分钟后重启进行安全更新"
sudo wall "请尽快保存您的工作!"

2. 强制重启(紧急情况)

bash 复制代码
# 强制重启,跳过 init 系统
sudo reboot -f

# 或使用 magic SysRq(死机时)
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

# 或 Alt+SysRq+REISUB(安全重启序列):
# R: 键盘 raw 模式
# E: SIGTERM 所有进程
# I: SIGKILL 所有进程
# S: 同步磁盘
# U: 重新挂载只读
# B: 重启

3. 记录重启而不实际执行

bash 复制代码
# 模拟重启,仅写入日志
sudo reboot -w

# 检查 wtmp 日志
last reboot | head -5

# 查看系统启动时间
uptime
who -b

4. 重启前安全检查脚本

bash 复制代码
#!/bin/bash
# 安全重启检查脚本
echo "===== 重启前系统检查 ====="

# 检查是否有其他用户登录
echo "当前登录用户:"
who -u

# 检查重要服务状态
for svc in nginx mysql docker; do
    systemctl is-active --quiet "$svc" && echo "[运行中] $svc" || echo "[已停止] $svc"
done

# 同步磁盘
echo "同步磁盘缓存..."
sync

# 确认操作
read -p "确认重启系统?(输入 YES 确认): " confirm
if [ "$confirm" = "YES" ]; then
    echo "系统将在3秒后重启..."
    sleep 3
    sudo reboot
else
    echo "已取消重启"
fi

5. 远程重启多台服务器

bash 复制代码
#!/bin/bash
# 批量重启服务器(危险,谨慎使用)
SERVERS=("web01" "web02" "app01" "app02")
DELAY=0

# 必须先重启从节点
echo "===== 批量重启计划 ====="
for server in "${SERVERS[@]}"; do
    echo "计划重启: $server (延迟${DELAY}分钟)"
    ((DELAY+=5))
done

read -p "确认执行?(yes/no):" answer
if [ "$answer" != "yes" ]; then
    echo "已取消"
    exit 0
fi

DELAY=0
for server in "${SERVERS[@]}"; do
    echo "正在通知 $server 计划重启..."
    ssh "$server" "sudo shutdown -r +${DELAY} '计划重启维护'"
    echo "$server 已设置为 ${DELAY} 分钟后重启"
    ((DELAY+=5))
done

echo "所有服务器已设置计划重启"

6. 使用 systemctl 重启

bash 复制代码
# 现代 Linux 推荐方式
sudo systemctl reboot

# 包含固件设置
sudo systemctl reboot --firmware-setup

# 紧急模式
sudo systemctl reboot --force --force

与其他重启方式对比

命令 特点 推荐场景
reboot 简单直接 单机/桌面
shutdown -r 支持延迟/广播 服务器
systemctl reboot Systemd 方式 现代 Linux
init 6 SysV 风格 旧系统
bash 复制代码
# 各种重启方式
# 方式1:reboot
sudo reboot

# 方式2:shutdown
sudo shutdown -r +1 "1分钟后重启"

# 方式3:systemd
sudo systemctl reboot

# 方式4:init
sudo init 6

# 方式5:proc
echo b | sudo tee /proc/sysrq-trigger  # 遇到内核挂起时

最佳实践

生产环境用 shutdown -r 而非 reboot,因为它会向所有用户广播警告并给予保存时间。

bash 复制代码
# 生产环境推荐流程
sudo wall "系统将在30分钟后重启维护,请保存工作"  # 提前通知
sudo shutdown -r +30 "计划重启维护"              # 设置计划
# ... 等待 ...
sudo shutdown -c                                   # 如需取消
相关推荐
2601_962304915 分钟前
把出片接进自动化流水线:2026 年批量 AI 视频生成工具的脚本契约与同类项目对照
运维·人工智能·自动化
曹牧5 分钟前
C#:文本文件读取
服务器·前端·c#
Ruiery8 分钟前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败10 分钟前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW17 分钟前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li32 分钟前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
实战派K8S&DB34 分钟前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
苏生Susheng1 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了1 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议
西索斯coding1 小时前
doubao-seed-2.1-turbo 调用一直 401 怎么办?pro 版同样的 Key 却正常——5 分钟排查定位指南
java·服务器·数据库·ai