核心重启命令
最常用、最标准的重启命令是 reboot。

reboot 命令
这是最直接、最常用的方式,执行此命令后,系统会立即开始重启流程。
基本语法:
sudo reboot
解释:
sudo:因为重启系统需要超级用户权限,所以通常需要使用sudo来执行,如果你当前是root用户,则无需sudo。reboot:命令本身,意为“重启”。
示例:

# 普通用户执行 sudo reboot # root 用户执行 reboot
功能完全相同的命令
在大多数现代 Linux 发行版(包括 RHEL)中,以下几个命令在功能上与 reboot 完全相同,它们都调用的是同一个系统工具。
init 命令 (传统方式)
这是比较传统的 SysV init 系统中使用的命令,在现代 RHEL 系统中(使用 systemd),它仍然可用,但更多是为了兼容性。
基本语法:
sudo init 6
解释:

init是系统的初始化进程,它的运行级别决定了系统的状态。- 运行级别
6专门用于“重启系统”。
shutdown 命令 (推荐用于计划重启)
shutdown 命令非常强大,它不仅可以立即重启,还可以安排一个未来的时间点进行重启,并会通知所有登录的用户,这是在生产环境中进行计划重启时的首选命令。
立即重启:
sudo shutdown -r now
-r:参数,表示reboot (重启)。now:时间,表示“立即”。
定时重启 (5分钟后重启):
sudo shutdown -r +5
+5:表示从现在起 5 分钟后。
定时重启 (在特定时间重启):
sudo shutdown -r 23:30
23:30:表示在晚上 11:30 重启。
取消已计划的重启: 如果计划了重启后又想取消,可以使用:
sudo shutdown -c
-c:参数,表示cancel (取消)。
使用 shutdown 的优点:
- 用户友好:在重启倒计时期间,所有终端上都会显示消息,提醒用户保存工作并退出系统。
- 安全:确保在重启前,系统会尝试正常地停止所有服务,将文件系统设置为只读模式,从而最大程度地避免数据损坏。
systemd 相关命令
现代 RHEL 系统使用 systemd 作为其初始化系统和系统管理器。reboot 和 shutdown 命令在底层实际上也是通过调用 systemctl 来实现的。
systemctl 命令 (底层管理)
这是 systemd 的核心命令,用于控制系统和服务状态。
基本语法:
sudo systemctl reboot
解释:
- 这个命令直接告诉
systemd的管理器去执行重启操作,它与sudo reboot在效果上是完全一样的,但更贴近系统底层。
重要注意事项
强制重启 vs. 正常重启
- 正常重启:上述所有命令(默认情况下)都会执行一个“正常”的重启流程,系统会向所有正在运行的进程发送
SIGTERM信号,允许它们优雅地关闭,它会同步所有文件系统,确保数据完整性。 - 强制重启:如果系统无响应(某个进程卡死导致无法正常关机),你可能需要强制重启,这相当于直接按住电脑的电源按钮。
- 物理操作:长按电源按钮约 5-10 秒。
- 软件命令 (极端情况):
sudo systemctl --force reboot,这会跳过正常的关机流程,直接重启,有极高的数据丢失风险,请谨慎使用。
确认用户身份
再次强调,重启操作需要 root 权限,如果你直接输入 reboot 而不加 sudo,系统会提示你输入密码,对于普通用户来说,sudo reboot 是标准做法。
总结与推荐
| 命令 | 语法 | 优点 | 适用场景 |
|---|---|---|---|
reboot |
sudo reboot |
简单、直接、快捷 | 日常快速重启,非生产环境或紧急情况。 |
shutdown -r |
sudo shutdown -r now |
安全、可定时、会通知用户 | 生产环境首选,计划内维护、需要通知所有用户时。 |
init 6 |
sudo init 6 |
传统、兼容性好 | 在非常旧的系统或需要兼容性脚本中使用。 |
systemctl reboot |
sudo systemctl reboot |
底层、systemd 原生 |
脚本编程或需要直接与 systemd 交互时。 |
- 日常个人使用:
sudo reboot就够了。 - 公司服务器或生产环境:强烈推荐使用
sudo shutdown -r +时间,这是一个更专业、更安全的做法。
