Linux各种关机命令工作过程详解

本文详细介绍了Linux系统中常用的关机命令,包括shutdown、halt、reboot和init,强调了正确关机的重要性,防止数据丢失和硬件损坏。shutdown命令需要超级用户权限,能安全关闭或重启系统,并通知用户。halt命令简单直接,相当于shutdown -h。reboot用于系统重启。init则用于切换系统运行级别,实现关机和重启。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用的Linux关机命令有init、shutdown、halt和reboot等,这些命令都可以达到关机重启的目的,但是每个命令的内部工作过程是不同的。

1.shutdown命令

       使用shutdown命令可以安全地关闭Linux系统。有些人会使用直接关闭电源的方法来关闭Linux,这是十分危险的。因为

在Linux后台运行着很多进程,这些进程控制着Linux对系统的各种操作,如果强制关机,可能会造成进程的混乱以至丢失数据。如果在系统工作负荷很高的情况下突然断电,不仅会丢失数据,甚至还会损坏硬件设备。

       shutdown命令是用shell编写的程序,必须由超级用户才能执行。shutdown命令执行后,会以广播的形式通知正在系统中工作的所有用户,系统将在指定的时间内关闭。请保存文件,停止作业,注销用户。此时 login 指令被冻结,新的用户不能登录。当所有用户从系统中注销或者指定时间已到时,shutdown就发送信号给init程序,要求init程序改变系统运行级别。接着,init程序根据shutdown指令传递过来的参数,相应地改变运行级别。例如,如果shutdown指定的参数是关机命令,init程序就执行init 0进行关机;如果shutdown指定的参数要重启系统,init程序就执行init 6进行系统重启。

1.1 shutdown命令语法

shutdown [-afFhknrc(参数名称)] [-t 秒数] 时间 [警告信息]

-a使用 /etc/shutdown.allow 来验证身份
-f重新启动时不执行fsck
-F重新启动时执行fsck重新启动时执行fsck
-h将系统关机,在某种程度上功能与halt命令相当
-k只是发送信息给所有用户,但并不会真正关机
-n不调用init程序关机,而是由shutdown自己进行(一般关机程序是由shutdown调用init来实现关机动作的),使用此参数将加快关机速度,但不太建议使用)
-r关机之后重新启动系统
-c取消前一个shutdown命令
-t<秒数>发送警告信息和关机信号之间要延迟多少秒。警告信息将提醒用户保存当前进行的工作
[时间]设置多久时间后执行shutdown命令。时间参数有hh︰mm或+m两种模式
[警告信息]要传送给所有登录用户的信息

1.2 应用举例

[root@CentOS ~]# shutdown -r now        #立即关机重启
[root@CentOS ~]# shutdown -h            #立即关机   
[root@CentOS ~]# shutdown  +5  "System  will  shutdown  after  5  minutes"   #设定5分钟后 
                                                                              关机,同时发出 
                                                                              警告信息给登录 
                                                                              的Linux用户

2.halt命令

        halt是最简单的关机命令,相当于“shutdown –h”组合。执行halt时,将终止所有应用程序,然后调用系统指令sync。sync将所有内存信息通过文件系统写入硬盘,然后停止内核

2.1 halt命令语法

halt [-findwp]

-f

不管当前系统处于何种运行级别,都不调用shutdown而强制关机
-i关机之前,关掉所有的网络接口
-nhalt执行时,不调用系统指令sync
-d不记录此次关机情况(当使用 -n 参数时隐含 -d)
-w不真正重启或关机,而仅仅将关机信息写入/var/logwtmp文件里
-p关机时调用poweroff,也就是关机的同时关闭电源(此选项为默认选项)

 

2.2 应用举例

[root@CentOS ~]# halt -p        #关闭系统并关闭电源
[root@CentOS ~]# halt -d        #关闭系统,但不留下纪录

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

3.reboot命令

        reboot命令的执行过程与halt基本类似,不同的是halt用于关机,而reboot用于关机后系统重启

4.init命令

        init程序主要用于系统不同运行级之间的切换,切换的工作是立即完成的。例如,init 0就是将系统运行级切换到0,也就是关机;init 6命令用于将系统运行级别切换到6,也就是重启系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值