跟老男孩学Linux运维:核心系统命令实战
上QQ阅读APP看书,第一时间看更新

1.3 Linux关机、重启、注销命令

1.3.1 重启或关机命令:shutdown

【功能说明】

shutdown是一个用来安全关闭或重启Linux系统的命令,系统在关闭之前会通知所有的登录用户,系统即将关闭,此时所有的新用户都不可以登录,与shutdown功能类似的命令还有init、halt、poweroff、reboot。

【语法格式】

shutdown [OPTION]...  TIME [MESSAGE]
shutdown [选项]       时间  消息

说明:

1)注意shutdown命令和后面的选项之间至少要有一个空格。

2)通常情况下,我们执行的shutdown命令为shutdown-h now或shutdown-r now。

【选项说明】

shutdown命令的参数说明见表1-5。

表1-5 shutdown命令的参数选项及说明

shutdown命令的工作过程就是当用户执行了对应参数并附带关机时间的命令之后,通知所有用户即将关机的信息,并且在这个时间段内禁止新用户登录,仅当到了指定的关机时间时,shutdown命令才会根据所接收的参数选项,发送请求给系统的init进程,请求将系统调整到对应参数的状态(例如-h参数),系统关机状态实际上对应的是Linux系统里的运行级别0。和系统关机相关的运行级别有:0(关机运行级别)-halt,6(重启运行级别)-reboot,更多相关内容可查看/etc/inittab文件。

【使用范例】

范例1-2:关机或重启系统的常见操作。

一分钟后关闭Linux系统的命令如下:

[root@oldboy ~]# shutdown -h +1    #<==一分钟后关闭Linux系统。
Broadcast message from root@oldboy #<==通知所有用户关机信息。
        (/dev/pts/1) at 10:26 ...
The system is going down for halt in 1 minute! #<==关机形式及时间提示。
^Cshutdown: Shutdown cancelled     #<==按Ctrl+c快捷键取消。

其中,结尾的“+1”表示的是关机的时间段,即1分钟后,当然也可以改为5分钟后,这个时间段是以当下系统时间为准来计算的,时间段也可以改为具体的时间点。

shutdown命令的工作原理为:一旦到达关机时间,shutdown命令就会发送请求给系统的init进程将系统调整到合适的运行级别(运行级别命令请参考runlevel命令,运行级别请查看/etc/inittab文件说明),其中0表示关机,6表示重启。所以,执行“init 0”就表示关机,执行“init 6”就表示重启。

11点整重启Linux系统的命令如下:

[root@oldboy ~]# shutdown -r 11:00
Broadcast message from root@oldboy
        (/dev/pts/1) at 10:31 ...
The system is going down for reboot in 29 minutes!
^Cshutdown: Shutdown cancelled

其中,结尾的11:00表示的是关机的时间点,比如说,下午19:00我要和一个女生约会,19:00就是一个时间点。本命令相当于在11:00的时候告诉init进程把运行级别调整为6,即相当于执行了“init 6”的命令。

立即关闭Linux系统的命令如下:

[root@oldboy ~]# shutdown -h now

在工作中,一般用得比较多的都是立即关闭系统命令。

1.3.2 关机与重启命令:halt/poweroff/reboot

【功能说明】

从RedHat或CentOS 6开始,你会发现halt、poweroff、reboot这三个命令对应的都是同一个man帮助文档,而halt和poweroff命令是reboot命令的链接文件,因此本书也把这三个命令放在一起讲解。

【语法格式】

reboot [OPTION]...
halt [OPTION]...
poweroff [OPTION]...

技巧说明:

1)注意,命令和后面的选项之间至少要有一个空格。

2)通常情况下,我们执行这三个命令时都不带任何参数。

对于这几个命令的参数,由于实在是没有什么价值,因此就不给大家介绍了。

【实践操作】

范例1-3:关机或重启系统的常见操作。

使用halt关机的命令如下:

[root@oldboy ~]# halt
Broadcast message from root@oldboy
        (/dev/tty1) at 11:10 ...
The system is going down for halt NOW!

halt命令是reboot命令的链接文件,具体查看命令如下:

[root@oldboy ~]# ls -l /sbin/halt
lrwxrwxrwx. 1 root root 6 3月   4 2016 /sbin/halt -> reboot

使用poweroff关机的命令如下:

[root@oldboy ~]# poweroff
[root@oldboy ~]# 
Broadcast message from root@oldgirl
        (/dev/pts/0) at 11:21 ...
The system is going down for power off NOW!

poweroff命令也是reboot命令的链接文件,具体查看命令如下:

[root@oldboy ~]# ll /sbin/poweroff
lrwxrwxrwx. 1 root root 6 3月   4 2016 /sbin/poweroff -> reboot

使用reboot重启系统的命令如下:

[root@oldboy ~]# reboot
[root@oldboy ~]# 
Broadcast message from root@oldgirl
        (/dev/pts/0) at 11:24 ...
The system is going down for reboot NOW!

为什么halt、poweroff命令是reboot命令的链接文件,但是分别执行命令后效果不一样呢?

读者看一下reboot命令的man帮助,可以发现reboot命令有2个参数--halt和--power-off,作用分别和halt、poweroff命令一样。

1.3.3 关机、重启和注销的命令列表

本章在结尾为大家总结了Linux下常见的关机、重启、注销等命令,并标注了企业中的常用命令,具体见表1-6。

表1-6 Linux下常见的关机、重启、注销命令集合