知识储备
1. 关机≠关闭电源,关机时电源本身并没有彻底断电,而维持了一个微弱电流。这个电流增加了电源管理功能可以让操作系统直接对电源进行管理,若操作系统实现软关机,那么通过网络就可以实现远程开机[当然硬件需要硬件支持];
2. 一旦开启了关机命令,那么会在后台运行关机进程,当条件满足时[到达指定时间],关机进程通过一系列调用执行关机;
3. 关机我们应该注意这几点:
有没有告知用户关机,有没有提示信息;
能不能新用户登陆;
未保存的数据操作系统怎么处理;
关机后,电源怎么处理;
所谓的shutdown、halt、reboot、poweroff的区别只不过是针对这几点处理方式不同罢了。
Shutdown命令
shutdown以一种安全的方式关闭系统。所有登陆用户都可以看到关机信息提示shutdown本质是通知Init进程,要求它改变runlevel来实现。
Usage:
shutdown [OPTION]... TIME [MESSAGE]
常用选项:
-r 关机后执行重启,先关机后重启
#shutdown -r now 立刻关机重启
-h, -H, -P 都是执行关机命令,但三者有区别
#shutdown -h +30 延迟30分钟后关机 halt or power off after shutdown
#shutdown -H now 立刻执行关机 now等于+0 halt after shutdown (implies -h)
#shutdown -P 15:20 下午15:20分执行关机 power off after shutdown (implies -h)
-k 警告但是并不关机
#shutdown -k 只是警告,但是不真正去执行关机
-c shutdown本质上在后台会运行这个进程,该进程可取消
#shutdown -c 取消后台运行shutdown进程
TIME说明:
必须指定TIME,即执行shutdown命令的时间[只有当取消shutdown命令时候不指定时间]
TIME格式大致有2种
<1>绝对时间:即hh:mm格式
<2>相对时间:即+m格式,从当前延时m分钟关机,请注意shutdown -h now中的now等于+0
Halt命令
江湖人称最简单的关机命令,但是没有shutdown那么安全。本事是调用shutdown -h。halt执行时�o杀死应用进程�o执行sync系统调用,文件系统写操作完成后就会停止内核。
Usage:
halt [OPTION]...
常用选项:
无参数 调用shutdown -h执行关机
#halt 调用shutdown -h 杀死进程,执行sync系统调用[同步],文件系统写完成后关闭Kernel
-n, --no-sync 不执行sync系统调用就关机
#halt -r 立刻关机,不同步临时数据到磁盘
#halt --no-sync 同上
-f, --force 用自己的关机方式,不去调用shutdown -h
#halt -f 强制关机,不去调用shutdown,未保存的数据会丢失
#halt -force 同上
-p 关机后关电源
#halt -p 关机后顺便关闭电源,请注意缺省会带-p
-w “假关机”
#halt -w 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
Poweroff命令
Poweroff基本和halt一致,不过使用poweroff会关机后并且切断电源。poweroff在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应,当然路由器等嵌入系统不支持ACPI的,所以这个无效。
Usage:
power [OPTION]...
常用选项:
基本参数同halt,再此不再赘述,补充2个小参数
#power -i 关闭所有网络接口,然后关机,关电源
#power -h 关闭操作系统之前将系统中所有的硬件设置为备用模式
Reboot命令
Reboot基本和halt一致,不过他是重启动作。功能是重新启动
Usage:
reboot [OPTION]...
常用选项:
基本参数同halt,再此不再赘述,补充2个小参数
#reboot -i 关闭所有网络接口,然后重启
#reboot -w 假重启,并不会真的重启,只是把重开机数据写到 /var/log/wtmp 档案里