linuxshutdown - juedaiyuer/researchNote GitHub Wiki

关机命令

shutdown

命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。

shutdown以一种安全的方式关闭系统。所有登陆用户都可以看到关机信息提示,并且login将被阻塞。可以指定立刻关机,也可以指定系统在一定的延时后关机。所有进程都将接收到signal信号。这可以使vi 等程序有时间将处于编辑状态的文件进行存储,邮件和新闻程序进程则可以将所有缓冲池内的数据进行适当的清除等等。 shutdown通过通知init进程,要求它改换运行级别来实现。运行级别0用来关闭系统,运行级别6用来重启系统,运行级别1用来使系统进入执行系统管理任务状态,如果没有给出 -h或-r标志时,这是 shutdown 命令的默认工作状态。

shutdown会去执行/etc/rc0.d/下的脚本,也可以说去执行runlevel0的脚本。

halt

halt是最简单的关机命令。其实halt就是调用shutdown -h。halt执行时会杀死应用进程,执行sync系统调用,文件系统写操作完成后就会停止内核。

poweroff

poweroff在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应,当然路由器等嵌入系统不支持ACPI的,所以这个无效。