说到关机和重启,很多人认为,重要的服务器(比如银行的服务器、电信的服务器)如果重启了,则会造成大范围的灾难。笔者在这里解释一下。

首先,就算是银行或电信的服务器,也不是不需要维护,而是依靠备份服务器代替。其次,每个人的经验都是和自己的技术成长环境息息相关的。比如笔者是游戏运维出身,而游戏又是数据为王,所以一切操作的目的就是保证数据的可靠和安全。这时,有计划的重启远比意外岩机造成的损失要小得多,所以定义重启是游戏运维的重要手段。

shutdown命令

在早期的 Linux 系统中,应该尽量使用 shutdown 命令来进行关机和重启。因为在那时的 Linux 中,只有 shutdown 命令在关机或重启之前会正确地中止进程及服务,所以我们一直认为 shutdown 才是最安全的关机与重启命令。

而在现在的系统中,一些其他的命令(如 reboot)也会正确地中止进程及服务,但我们仍建议使用 shutdown 命令来进行关机和重启。

shutdown 命令的基本信息如下。
  • 命令名称:shutdown。
  • 英文原意:bring the system down。
  • 所在路径:/sbin/shutdown。
  • 执行权限:超级用户。
  • 功能描述:关机和重启

命令格式

[root@localhost ~]# shutdown [选项] 时间 [警告信息]

选项:
  • -c:取消已经执行的 shutdown 命令;
  • -h:关机;
  • -r:重启;

【例 1】重启与定时重启。
先来看看如何使用 shutdown 命令进行重启:

[root@localhost ~]# shutdown -r now
#重启, now是现在重启的意思
[root@localhost ~]# shutdown -r 05:30
#指定时间重启,但会占用前台终端
[root@localhost ~]# shutdown -r 05:30 &
#把定义重启命令放入后台,&是后台的意思
[root@localhost ~]# shutdown -c
//取消定时重启
[root@localhost ~]# shutdown -r +10
#10分钟之后重启

【例 2】关机和定时关机。

[root@localhost ~]# shutdown -h now
#现在关机
[root@localhost ~]# shutdown -h 05:30
#指定时间关机

reboot命令

在现在的系统中,reboot 命令也是安全的,而且不需要加入过多的选项。

[root@localhost ~]# reboot
#重启

halt和poweroff命令

这两个都是关机命令,直接执行即可。

[root@localhost ~】# halt
#关机
[root@localhost ~】# poweroff
#关机

init命令

init 是修改 Linux 运行级别的命令,也可以用于关机和重启。

[root@localhost~]# init 0
#关机,也就是调用系统的 0 级别
[root@localhost ~】# init 6
#重启,也就是调用系统的 6 级别