FreeBSD关闭系统

发表于:2007-07-04来源:作者:点击数: 标签:
不论您决定学习使用何种类型的操作系统,您第一步要学习的便是要如何对此系统做正确的关机动作。 因为不论是任何操作系统,当主机电源一打开且正常的跑完整个开机流程后,该操作系统便已挂上了许多服务程序等待您的操作指令以便运作。而这些服务程序运作时,

  不论您决定学习使用何种类型的操作系统,您第一步要学习的便是要如何对此系统做正确的关机动作。
  因为不论是任何操作系统,当主机电源一打开且正常的跑完整个开机流程后,该操作系统便已挂上了许多服务程序等待您的操作指令以便运作。而这些服务程序运作时,必然的也会去存取系统资源 -- 不论是中央处理器 (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 选项大致如上,如果您有兴趣再深入了解,请执行bsd.org/cgi/man.cgi?query=shutdown>man shutdown 来查阅。
  
  

原文转自:http://www.ltesting.net