linux中关机命令的区别是:执行shutdown命令时,系统会通知所有登录的用户系统将要关闭;执行halt命令时,文件系统写操作完成后,内核停止;init命令用于切换系统的运行级别,【init 0】表示关机。
Linux中的关机命令有shutdown、halt和init,它们都可以达到关机的目的,但是每个命令的内部工作过程是不同的,下面我们来分别介绍一下:
(推荐学习:linux教程)
1、shutdown
shutdown命令用于安全地关闭Linux系统。
由于Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至会损坏硬件设备。
执行shutdown命令时,系统会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录系统。
shutdown命令的工作实质是给init程序发送信号(signal),要求其切换系统的运行级别(Runlevel)。
系统的运行级别包括:
-
0:关闭系统
-
1:单用户模式,如果没有为shutdown命令指定-h或-r参数而直接执行,则默认将切换到此运行级别
-
2:多用户模式(不支持NFS)
-
3:多用户模式(支持NFS),一般常用此种运行级别
-
5:多用户模式(GUI模式)
-
6:重新启动系统
2、halt
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
-
[-f] 没有调用shutdown而强制关机或重启
-
[-i] 关机或重新启动之前,关掉所有的网络接口
-
[-p] 关机时调用poweroff,此选项为缺省选项
3、init
init是所有进程的祖先,其进程号始终为1。
init用于切换系统的运行级别,切换的工作是立即完成的。
init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。