不论您决定学习使用何种类型的操作系统,您第一步要学习的便是要如何对此系统做正确的关机动作。
因为不论是任何操作系统,当主机电源一打开且正常的跑完整个开机流程后,该操作系统便已挂上了许多服务程序等待您的操作指令以便运作。而这些服务程序运作时,必然的也会去存取系统资源 -- 不论是中央处理器 (CPU)、主存储器 (RAM)、辅助内存 (储存装置┱Floppy、HDD、Type...) 等等。
如果您不依照正确的步骤来关机的话,则系统中正在运作的服务程序无法释放其正在使用中的资源,轻则于下次开机时会稍微延长激活时间 -- 因为要检测系统资源是否正确或修复些微的错误;重则造成资料的损毁 -- 因为当某项服务程序正在对储存装置做存取动作时,电源却中止了,因而无法完成该次工作,而碍于许多因素,如┱机械原理,是很有可能破坏该储存装置上的资料,甚至造成该储存装置的硬件损毁。
除此之外,FreeBSD 是套多人使用的系统,也具有强大的档案快取功能,因此在关机以前,我们必须正常的结束各个正在运作中的程序,且将内存中的快取资料存回储存装置 (一般来说就是硬盘啦),绝不能像以往贯用的 DOS 系统一样,直接将电源关闭,否则您将会听到遍地的衰嚎声 -- 不论是您自己的或是其它线上使用者的 ^_^
在此我们要为您介绍 sync、shutdown、reboot、halt 这几个指令┱
?sync
强迫系统将内存中的快取资料写回储存装置。
系统会每隔 N 秒 (视系统设置而定,一般来说是 30 秒) 就将内存中的快取资料写回储存装置,然而有时可能会因种种因素而需强迫系统即刻就将快取资料写回,比如在做完大量的档案存取动作之后,这时就需要使用 sync 这个指令来要求系统立即将快取资料写回,以确保资料的完整性。
相信如果有看过较早期的 Unix-Like 书籍或较早接触 Unix-Like 系统的人,一定都知道在要关机前必需先下达 sync 指令后才能接着下达关机或重新开机的指令,这就是为了确保在关机或重新开机前,资料是正确无误的。
?reboot
很明确的能由指令名称就知道做啥用的指令 -- 重新激活系统。
reboot 会送出 SIGTERM 15 的 signal 讯号给所有的程序通知该停止运作了,随后再送出 SIGKILL 9 的 signal 讯号直接通知 kernel 将程序给移除,然后重新激活系统。
虽然 reboot 于送出 signal 讯号之前,会先呼叫 sync 将快取资料写回,但在此依然强烈建议您,最好在使用 reboot 之前,先使用 sync 指令强迫快取数据写回,以免发生不测!!
您也可使用 reboot -p 来关机同时关闭电源 -- 需使用 ATX POWER 及核心有支持。
?halt
halt 所负责的工作与 reboot 可说完全相同 -- 包含可使用的选项,唯一不同的地方在于 halt 在关闭 FreeBSD 系统之后,并不会重新激活,而是会停在那儿等待使用者关闭电源或按下任意键以重新激活。
如果您是想透过远程网络来重新激活 FreeBSD 的话,千万记得不可使用 halt 指令,不然可就会叫天天不应、叫地地不灵了 ^_^
?shutdown
shutdown 提供了个自动化的关机通知系统,让系统管理员能够提前自订时限,并于时限到达前通知使用者即将关机的讯息。
shutdown 的使用格式如下┱
shutdown [选项] time [讯息]
otime
一定要加入的指定值。
时间的格式┱
§now
表示现在、立刻的意思,这是最常用的。比如要由多重模式进入单机模式时┱shutdown now
§+number
+ 表示几分钟以后。
number 单位为分钟。
例如┱shutdown +5 表示 5 分钟以后关机。
§yymmddhhmm
表示在『yy 年 mm 月 dd 日 hh 时 mm 分』的时候关机。
例如┱shutdown 0401010000
表示在 2004 年 01 月 01 日 0 时 0 分关机。
oshutdown -h time
-h 选项相等于执行 halt 指令。
例如┱shutdown -h +5
表示在 5 分钟后关机,且等待关闭电源或按任意键重新激活。
oshutdown -p time
-p 选项相等于执行 halt -p 指令。
例如┱shutdown -p +5
表示在 5 分钟后关机,如硬件与核心选项有支持时会直接关闭电源。
oshutdown -r time
-r 选项相等于执行 reboot 指令。
例如┱shutdown -r +5
表示在 5 分钟后重新激活系统。
oshutdown -k time
-k 是个满特别的选项。shutdown -k 并不是真正的执行关机指令,只是通知正在线上的使用者系统即将关机的讯息,所以管理者需再下达 reboot 或 halt 指令来动新激活系统或关机。
在指定的时间到达时,系统会建立 /etc/nologin 这个档案,让使用者无法再次登入系统 (root 除外),并且会将还在线上的使用者强迫注销系统 -- 就是踢出了啦 ^_^
如果您后悔不想关机或重新激活系统,切记要移除 /etc/nologin 档案,不然使用者将会永远无法登入系统。
o讯息
讯息通常是一行说明为何要关机的说明文字,藉以让使用者明白且有时间来暂停手上的工作。讯息需于前后以双引号含括,或是以减号「-」带头再接着输入一行或一行以上的讯息。如┱ shutdown -p +5 "因电源风扇故障,将于五分钟后关机!"
shutdown -p +5 - 因电源风扇故障,将于五分钟后关机!
当然了,如果线上没有其它使用者的话,则讯息也不用打了,反正又没人会看到,除非........
比较常用的 shutdown 选项大致如上,如果您有兴趣再深入了解,请执行man shutdown 来查阅。