一、init 的运行级定义

1,# init 0系统启动rc0脚本杀掉运行的进程,关闭操作系统。使用虚拟机测试关闭到“关机”状态;

2,# init 1系统杀掉运行进程后启动到单用户模式。通过虚拟机测试可以看到虚拟机初始化到单用户模式,远程用户被out了。按Ctrl+D(exit)将设备重启,恢复到多用户状态;

3,# init 5系统杀掉运行进程后,关闭操作系统。使用虚拟机测试,“然而并没有什么luan用”,没有出现关闭操作系统;

4,# intit 6 重启。

二、shutdown、poweroff、reboot命令

1,shutdown在关机动作中用得比较多的命令。Shutdown主要会经过以下几个过程完成关机。

,指定关机时间,并发送消息给正在使用的用户;

,然后运行运行init 0杀掉所有进程;

,运行sync将内存中的数据同步到硬盘;

,最后调用halt进入关机模式;

2,shutdown常用操作

,通过---help查看shutdown常用参数



[root@localhost ~]# shutdown --help
Usage: shutdown [OPTION]... TIME [MESSAGE]
Bring the system down.
Options:
 -r                          rebootafter shutdown
 -h                          haltor power off after shutdown
 -H                          halt after shutdown (implies-h)
 -P                        poweroff after shutdown (implies -h)
 -c                          cancela running shutdown
 -k                          onlysend warnings, don't shutdown
  -q,--quiet                 reduce output to errors only



,示例1:



窗口1:[root@localhost ~]# shutdown 23:30 #直接加时间指明某刻关机。
Broadcast message from root@localhost
       (/dev/pts/2) at 22:56 ...
The system is going down for maintenance in34 minutes! #如果想取消也可以按Ctrl+C取消
shutdown: Shutdown cancelled  ##在另外一个终端使用-c参数取消了





窗口2:[root@localhost ~]#
Broadcast message from root@localhost
        (/dev/pts/2) at 22:56 ...
The system is going down for maintenance in34 minutes! #窗口1命令引起的消息
[root@localhost ~]# shutdown –c  #在另外一个终端使用-c取消



,示例2:


[root@localhost ~]# shutdown 30  # The system is going down for maintenance in30 minutes!
[root@localhost ~]# shutdown -r now  # The system is going down for reboot NOW!


 

3,halt命令

halt命令只完成关机进程的一部分职能,他不通报正在登陆的用户,不执行kill操作,而立即进行shutdown,如果使用#halt –q 会立即停止系统,没有同步,没有杀死进程或写入日志,非常危险。



[root@localhost ~]# halt
Broadcast message from root@localhost
       (/dev/pts/0) at 23:13 ...
The system is going down for halt NOW!


 

4,poweroff 命令

Poweroff命令不通报正在登陆的用户,不执行kill脚本操作,立即进行shutdown并掉电。一般与sync命令同时使用如:#sync;reboot。

 

三、总结:halt、poweroff、reboot都是比较危险的操作,一般不建议使用这些命令。或者需要使用这些命令前先使用“sync”同步下。

使用shutdown时可以先是使用# shutdown now –k 只是发送关机消息,并不会真正的关机。



转载于:https://blog.51cto.com/dingtongxue1990/1687856