二、Halt关机命令解析。
Halt关机命令可以说是这六个关机命令中的老大。在这个命令中跟上不同的参数,可以实现不同的目的。在这个关机命令中,主要有如下七个参数。
插图二:
如-n参数,它主要用来防止sync系统调用。Linux系统中有的时候会了提高效率,会把欲写入硬盘的资料先写到 filesystem buffer 中。这个 buffer 是一块内存中的空间。如果欲写入硬盘的资料存于这个buffer中,而系统又突然断电的话,那么资料就会丢失。sync指令会将存于buffer 中的资料强制写入硬盘中。这个功能就好像数据库中的高速缓存一样。可以先把更改的数据写入到内存的一个高速缓存中。然后等到某个特定的时候再把它写入到硬盘中。这种方式可以提高系统性能。不过有的时候管理员需要禁止系统采取sync指令。如系统管理员用fsck命令修补分区之后,为了防止内核用老版本的超级块覆盖修补过的超级块,在关机时就要采用halt –n这个形式来关机。如此的话,在关机的时候不会用老版本的超级块覆盖修补过的超级块。
如果在halt命令中带了-w参数的话,则并不是真正的重启或者关机。而只是把这个事件记入到wtmp日志文件中。大家都知道,在系统登录时,login登录程序会将一些内容写入到utmp文件中,同时也将其添写到wtmp日志文件中。注销时,init进程将utmp文件中相应的记录擦除,每个字节都填以0。并将一个新的记录添写到wtmp文件中。在系统重新启动时,以及更改系统时间和日期的前后,都在wtmp文件中添写特殊的记录项。也就是说,wtmp日志文件跟踪各个登录和注销事件,以及其他一些特殊的更改。如果系统管理员并不是要真正的关机,而只是想把某个标记写入到wtmp日志文件中,则可以利用这个halt –w命令来完成这个需求。另外,-d是跟-w相反的参数。如果在关机时加入这个参数的话,则关机时不会往wtmp日志文件中加入内容。
利用这个命令,有时候还可以实现节电功能。如在笔记本电脑中,节电模式通常有四种。一是Doze模式,当设定时间一到,CPU时钟变慢,其他设备照常运作。二是Standby模式,当设定时间一到,硬盘和显示将停止工作,其他设备照常运作。三是Suspend模式,当设定时间一到,除CPU以外的所有设备都将停止工作。四是HDD Power Down模式:当设定时间一到,硬盘停止工作,其他设备照常运作。而在Linux操作系统下,他支持的时第二种模式,即Standby模式。如果系统管理员运行halt -h命令,则就是高速Linux操作系统的硬盘处于Standby模式,以节省电。
另外参数-p是这个命令的缺省选项。如果采用这个参数,则这个命令同poweroff命令就完全相同了。其他相关参数大家可以参考系统的帮助文件来了解,这里不多说了。
需要注意的是,使用halt命令的话,有用户的限制。也就是说,系统在解析命令行参数后,会调用geteuid系统进程判断当前用户是否为root用户。如果是的话进行后续的操作;如果为普通用户,halt退出,并且会向用户提示错误信息。
可见halt命令是一个很强大的关机命令。但在某种程度上说其又不是一个关机命令。因为它可以起到很多关机以外的作用。作为系统管理员要根据自己的需要,选择合适的参数。只有如此,才能够把这个关机命令的作用发挥到极致。