Linux關機和重啟命令

xprogrammer發表於2014-04-14

  Linux中常用的關機和重新啟動命令有shutdown、halt、reboot以及init,它們都可以達到關機和重新啟動的目的,但是每個命令的內部工作過程是不同的,下面將逐一進行介紹。

  1、shutdown

  shutdown命令用於關閉Linux系統。有些使用者會使用直接斷掉電源的方式來關閉Linux,這十分危險。因為Linux與不同,其後臺執行著許多程式,所以強制關機可能會導致程式的資料丟失,使系統處於不穩定的狀態,甚至會損壞硬體裝置。

  執行shutdown命令時,系統會通知所有登入的使用者系統將要關閉,並且login指令會被凍結,即新的使用者不能再登入系統。使用shutdown命令可以直接關閉系統,也可以延遲指定的時間再關閉系統,還可以重新啟動。延遲指定的時間再關閉系統,可以讓使用者有時間儲存當前正在處理的檔案和關閉已經開啟的程式。

  shutdown命令的部分引數如下:

  • [-t] 指定在多長時間之後關閉系統
  • [-r] 重啟系統
  • [-k] 並不真正關機,只是給每個登入使用者傳送警告訊號
  • [-h] 關閉系統(halt)

  shutdown命令的工作實質是給init程式傳送訊號(signal),要求其切換系統的執行級別(Runlevel)。系統的執行級別包括:

  • 0:關閉系統
  • 1:單使用者模式,如果沒有為shutdown命令指定-h或-r引數而直接執行,則預設將切換到此執行級別
  • 2:多使用者模式(不支援NFS)
  • 3:多使用者模式(支援NFS),一般常用此種執行級別
  • 5:多使用者模式(GUI模式)
  • 6:重新啟動系統

  2、halt

  halt是最簡單的關機命令,其實際上是呼叫shutdown -h命令。halt執行時,殺死應用程式,檔案系統寫操作完成後就會停止核心。

  halt命令的部分引數如下:

  • [-f] 沒有呼叫shutdown而強制關機或重啟
  • [-i] 關機或重新啟動之前,關掉所有的網路介面
  • [-p] 關機時呼叫poweroff,此選項為預設選項

  3、reboot

  reboot的工作過程與halt類似,其作用是重新啟動,而halt是關機。其引數也與halt類似。

  4、init

  init是所有程式的祖先,其程式號始終為1。init用於切換系統的執行級別,切換的工作是立即完成的。init 0命令用於立即將系統執行級別切換為0,即關機;init 6命令用於將系統執行級別切換為6,即重新啟動。

相關文章