linux 重启命令一共有五种常用写法,分别是 reboot init 6 shutdown r systemctl reboot halt p,都是用来重启主机,但是底层调用逻辑适用场景有区别,运维远程操作服务器经常会用到,执行重启会中断当前所有业务,正式操作前一定要确认业务状态,避免造成线上停机。很多新手只知道 reboot,不清楚其他几种命令的差别,也不知道 init 6 属于老系统运行级别方式,现在 systemd 系统依然兼容,下面分模块深度讲解。

一 五种重启命令介绍

命令说明
reboot最常用重启命令,简单直接,systemd 系统通用,远程运维首选
init 6传统 SysVinit 运行级别重启,6 代表重启级别,老系统常用,新版 systemd 兼容支持
shutdown -r nowshutdown 带 r 参数,r 代表重启,now 代表立刻执行,也可以设置延时重启
systemctl rebootsystemd 原生重启命令,centos7 之后新系统推荐,和 systemd 管理体系统一
halt -phalt 原本是停机命令,搭配 p 参数特殊用法,部分环境可触发重启,日常不推荐作为主用重启命令

二 详细用法说明

第一种 reboot

直接输入 reboot 回车,系统马上开始重启,需要 root 权限或者 sudo 提权

sudo reboot

第二种 init 6

init 6

含义就是切换到运行级别 6,运行级别 6 定义就是系统重启,老式运维教材经常使用这条命令。

第三种 shutdown -r now

shutdown -r now

如果需要延时重启,可以写成 shutdown -r +10,代表十分钟之后重启,还可以提前取消,执行 shutdown -c 取消计划重启。

第四种 systemctl reboot

systemctl reboot

属于 systemd 标准命令,现代主流发行版 centos7 8 9 ubuntu 都推荐这条命令。

第五种 halt -p

halt 本身功能是停止 CPU,部分版本参数组合可以完成重启,因为语义容易混淆,日常生产不优先使用,一般还是使用前面四种。

三 操作注意事项

1 重启会断开 ssh 远程连接,所有正在运行的服务进程都会终止

2 线上业务服务器重启前,建议先停止业务,确认数据库已经安全落盘,防止数据损坏

3 普通用户执行重启命令需要 sudo 提权,否则会提示权限不足

4 如果系统高负载卡死,普通重启命令没有响应,可以使用强制重启方式,但是强制重启有文件系统损坏风险

四 补充区分

shutdown 除了立刻重启,还支持定时重启,这个是它独有的优势,其他几条命令大多是立刻执行。init 6 属于兼容旧机制,新学习优先掌握 reboot 和 systemctl reboot。

【常见问题】

问题 1 linux 重启命令里面 reboot 和 systemctl reboot 哪个更好

回答 1 linux 重启命令,centos7 之后 systemd 系统推荐 systemctl reboot,reboot 是兼容通用写法,两种都可以正常完成重启,日常使用 reboot 更简短。

问题 2 linux 重启命令 init 6 是什么原理

回答 1 linux 重启命令 init 6 是传统运行级别机制,运行级别 6 定义就是重启,新版 systemd 系统保留兼容,依然可以执行成功。

问题 3 linux 重启命令 shutdown -r 能不能延时重启

回答 1 linux 重启命令 shutdown -r 支持延时,shutdown -r +30 代表三十分钟之后重启,执行 shutdown -c 可以取消这次定时重启计划。

问题 4 linux 重启命令执行之后 ssh 马上断开吗

回答 1 linux 重启命令执行之后,系统开始关机重启,ssh 远程连接会立刻断开,等待主机重新启动完成之后,才可以重新连接。

【免责申明】

本文介绍 linux 重启命令相关内容仅作为技术学习参考,重启操作会中断线上业务,操作前确认业务状态,本文不对重启造成的业务停机数据异常承担责任。