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
评论区