天天看點

Linux關機指令詳解

在linux下一些常用的關機/重新開機指令有shutdown、halt、reboot、及init,它們都可以達到重新開機系統的目的,但每個指令的内部工作過程是不同的。

1.shutdown

  shutdown指令安全地将系統關機。 有些使用者會使用直接斷掉電源的方式來關閉linux,這是十分危險的。因為linux與windows不同,其背景運作着許多程序,是以強制關機可能會導緻程序的資料丢失﹐使系統處于不穩定的狀态﹐甚至在有的系統中會損壞硬體裝置。

  而在系統關機前使用shutdown指令﹐系統管理者會通知所有登入的使用者系統将要關閉。并且login指令會被當機﹐即新的使用者不能再登入。直接關機或者延遲一定的時間才關機都是可能的﹐還可能重新開機。這是由所有程序〔process〕都會收到系統所送達的信号〔signal〕決定的。這讓像vi之類的程式有時間儲存目前正在編輯的文檔﹐而像處理郵件〔mail〕和新聞〔news〕的程式則可以正常地離開等等。

  shutdown執行它的工作是送信号〔signal〕給init程式﹐要求它改變runlevel。Runlevel 0被用來停機〔halt〕﹐runlevel 6是用來重新激活〔reboot〕系統﹐而runlevel 1則是被用來讓系統進入管理工作可以進行的狀态﹔這是預設的﹐假定沒有-h也沒有-r參數給shutdown。要想了解在停機〔halt〕或者重新開機〔reboot〕過程中做了哪些動作﹐你可以在這個檔案/etc/inittab裡看到這些runlevels相關的資料。

shutdown 參數說明:

   [-t] 在改變到其它runlevel之前﹐告訴init多久以後關機。

   [-r] 重新開機電腦。

   [-k] 并不真正關機﹐隻是送警告信号給每位登入者〔login〕。

   [-h] 關機後關閉電源〔halt〕。

   [-n] 不用init﹐而是自己來關機。不鼓勵使用這個選項﹐而且該選項所産生的後果往往不總是你所預期得到的。

   [-c] cancel current process取消目前正在執行的關機程式。是以這個選項當然沒有時間參數﹐但是可以輸入一個用來解釋的訊息﹐而這資訊将會送到每位使用者。

   [-f] 在重新開機電腦〔reboot〕時忽略fsck。

[-F] 在重新開機電腦〔reboot〕時強迫fsck。

   [-time] 設定關機〔shutdown〕前的時間。

2.halt----最簡單的關機指令

   其實halt就是調用shutdown -h。halt執行時﹐殺死應用程序﹐執行sync系統調用﹐檔案系統寫操作完成後就會停止核心。

   參數說明:

   [-n] 防止sync系統調用﹐它用在用fsck修補根分區之後﹐以阻止核心用老版本的超級塊〔superblock〕覆寫修補過的超級塊。

   [-w] 并不是真正的重新開機或關機﹐隻是寫wtmp〔/var/log/wtmp〕紀錄。

   [-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。

   [-f] 沒有調用shutdown而強制關機或重新開機。

   [-i] 關機〔或重新開機〕前﹐關掉所有的網絡接口。

   [-p] 該選項為預設選項。就是關機時調用poweroff。

3.reboot

  reboot的工作過程差不多跟halt一樣﹐不過它是引發主機重新開機﹐而halt是關機。它的參數與halt相差不多。

繼續閱讀