侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux reboot命令用法详解:如何重启或定时重启linux系统(附实例教程和注意事项)

Linux reboot命令介绍

reboot命令是一个系统管理命令,它的全称是Reboot the system,意思是重新启动系统。reboot命令可以让你在命令行界面下,不需要图形界面,就可以控制你的Linux系统的重启。reboot命令会通知所有已登录的用户和进程,系统即将关闭,并且不再允许新的登录。Linux会关闭所有打开的文件,停止所有运行的进程,并重新启动系统。

Linux reboot命令适用的Linux版本

reboot命令在大多数现代的Linux发行版中,都是一个指向systemctl命令的快捷方式,systemctl命令是systemd启动系统的一个工具,它取代了传统的System V init系统。systemd启动系统从2011年开始被Fedora等发行版采用,后来也被Debian和Ubuntu等发行版使用。保留reboot命令是为了和System V init系统保持一定的兼容性,这样一些shell脚本(和一些习惯System V的系统管理员)就不会在迁移到一个使用systemd的系统时出现问题。因此,reboot命令在几乎所有的Linux发行版中都可以使用,无论是基于systemd还是System V init的系统。

Linux reboot命令的基本语法

reboot命令的基本语法格式如下:

reboot [OPTIONS]

其中,OPTIONS是一些可选的参数,用来控制reboot命令的行为。下面会介绍一些常用的选项。

Linux reboot命令的常用选项说明

reboot命令的常用选项有以下几个:

选项说明
-f, --force强制重启,不通知其他用户和进程,也不执行任何关机脚本。这相当于直接拔掉电源,可能会导致数据丢失或文件系统损坏,不推荐使用。
-h, --halt关闭系统,但不断电。这相当于执行halt命令。
-p, --poweroff关闭系统,并断电。这相当于执行poweroff命令。
--reboot重新启动系统,这是reboot命令的默认行为。
--kexec使用kexec命令来重启系统,这样可以跳过BIOS或UEFI的启动过程,加快重启的速度。但是,这需要你的内核支持kexec,并且已经加载了一个新的内核。
--no-wall不向其他用户发送关机通知。
--message=向其他用户发送自定义的关机通知,需要用引号括起来。

Linux reboot命令的实例

下面是一些reboot命令的实例,你可以根据自己的需要来尝试。

立即重启系统

要立即重启系统,只需要输入reboot命令即可,但是需要使用sudo命令来获取超级用户权限。输入如下命令:

[linux@bashcommandnotfound.cn ~]$ sudo reboot

系统会立即重启,不会有任何提示。

在一定时间后重启系统

如果你想在一定时间后重启系统,你可以使用shutdown命令来实现,shutdown命令可以接受一个时间参数,来指定重启的时间。时间参数有两种格式,一种是绝对时间,格式是hh:mm,表示小时和分钟;另一种是相对时间,格式是+m,表示从现在开始的分钟数。例如,要在10点重启系统,可以输入如下命令:

[linux@bashcommandnotfound.cn ~]$ sudo shutdown -r 10:00

要在5分钟后重启系统,可以输入如下命令:

[linux@bashcommandnotfound.cn ~]$ sudo shutdown -r +5

要立即重启系统,可以使用+0或者now作为时间参数,例如:

[linux@bashcommandnotfound.cn ~]$ sudo shutdown -r now

向其他用户发送重启通知

如果你想在重启系统时,向其他用户发送一些通知,比如重启的原因,或者重启后的注意事项,你可以在shutdown命令后面加上你想要发送的消息,需要用引号括起来。例如,要在10分钟后重启系统,并通知其他用户是因为硬件升级,可以输入如下命令:

[linux@bashcommandnotfound.cn ~]$ sudo shutdown -r +10 "Hardware upgrade"

其他用户会收到类似这样的通知:

Broadcast message from root@bashcommandnotfound.cn (Tue 2023-11-24 11:26:34 HKT):

The system is going down for reboot at Tue 2023-11-24 11:36:34 HKT!
Hardware upgrade

需要注意的是,如果你要发送自定义的通知,你必须指定一个时间参数,否则会报错。

取消已经安排的重启

如果你已经安排了一个重启,但是后来又改变了主意,或者发现了一些问题,你可以使用shutdown命令的-c选项来取消重启。例如,要取消一个已经安排的重启,并通知其他用户取消的原因,可以输入如下命令:

[linux@bashcommandnotfound.cn ~]$ sudo shutdown -c "Canceling the reboot"

其他用户会收到类似这样的通知:

Broadcast message from root@bashcommandnotfound.cn (Tue 2023-11-24 11:26:34 HKT):

The system shutdown has been canceled at Tue 2023-11-24 11:26:34 HKT!
Canceling the reboot

Linux reboot命令的注意事项

使用reboot命令时,有以下几点需要注意:

  • reboot命令需要超级用户权限,所以一般需要使用sudo命令来执行。
  • reboot命令会关闭所有打开的文件和运行的进程,所以在重启之前,最好保存你的工作,或者使用一些工具来恢复你的会话。
  • reboot命令会向其他用户发送关机通知,除非你使用--no-wall选项。如果你想发送自定义的通知,你需要使用--message=选项,并指定一个时间参数。
  • reboot命令的一些选项,比如-f, -h, -p, --kexec等,会改变reboot命令的默认行为,可能会导致一些不可预期的结果,所以在使用这些选项时,要小心谨慎,最好先查看一下man手册,了解它们的具体含义和影响。
  • 如果你输入reboot命令后,发现系统没有重启,而是提示你bash: reboot: command not found,那么可能是因为你的系统没有安装reboot命令,或者reboot命令不在你的PATH环境变量中。你可以尝试使用绝对路径来执行reboot命令,例如:
[linux@bashcommandnotfound.cn ~]$ sudo /sbin/reboot

或者,你可以尝试安装reboot命令,不同的Linux发行版可能有不同的安装方法,例如,在基于Debian的系统中,你可以使用如下命令来安装reboot命令:

[linux@bashcommandnotfound.cn ~]$ sudo apt install systemd-sysv
0

评论区