慣用的關機指令: shutdown



由於Linux的關機是那麼重要的工作,因此除了你是在主機前面以tty7圖形介面來登入系統時, 不論用什麼身份都能夠關機之外,若你是使用遠端管理工具(如透過pietty使用ssh服務來從其它電腦登入主機), 那關機就仅仅有root有權力而已喔!

嗯!那麼就來關機試試看吧!我們較常使用的是shutdown這個指令,而這個指令會通知系統內的各個程序 (processes),並且將通知系統中的run-level內的一些服務來關閉。shutdown能够達成例如以下的工作:

  • 能够自由選擇關機模式:是要關機、又一次開機或進入單人操作模式均可;
  • 能够設定關機時間: 能够設定成現在立马關機, 也能够設定某一個特定的時間才關機。
  • 能够自訂關機訊息:在關機之前,能够將自己設定的訊息傳送給線上 user 。
  • 能够僅發出警告訊息:有時有可能你要進行一些测試,而不想讓其它的使用者干擾, 或者是明确的告訴使用者某段時間要注意一下!這個時候能够使用 shutdown 來嚇一嚇使用者,但卻不是真的要關機啦!
  • 能够選擇是否要 fsck 檢查檔案系統 。

那麼shutdown的語法是怎样呢?聰明的讀者大概已經开始找『男人』了!沒錯,隨時隨地的 man 一下,是非常不錯的舉動!好了,簡單的語法規則為:

[root@www ~]# /sbin/shutdown [-t 秒] [-arkhncfF] 時間 [警告訊息]
選項與参數:
-t sec : -t 後面加秒數,亦即『過幾秒後關機』的意思
-k : 不要真的關機,仅仅是發送警告訊息出去!
-r : 在將系統的服務停掉之後就又一次開機(经常使用)
-h : 將系統的服務停掉後,马上關機。 (经常使用)
-n : 不經過 init 程序,直接以 shutdown 的功能來關機
-f : 關機並開機之後,強制略過 fsck 的磁碟檢查
-F : 系統又一次開機之後,強制進行 fsck 的磁碟檢查
-c : 取消已經在進行的 shutdown 指令內容。
時間 : 這是一定要增加的参數!指定系統關機的時間!時間的範例底下會說明。
範例:
[root@www ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'
# 告訴大家,這部機器會在十分鐘後關機!並且會顯示在眼下登入者的螢幕前方!
# 至於参數有哪些呢?下面介紹幾個吧!


此外,须要注意的是,時間参數請務必增加指令中,否則shutdown會自動跳到 run-level 1 (就是單人維護的登入情況),這樣就傷腦筋了!底下提供幾個時間参數的样例吧:

[root@www ~]# shutdown -h now
立马關機,当中 now 相當於時間為 0 的狀態
[root@www ~]# shutdown -h 20:25
系統在今天的 20:25 分會關機,若在21:25才下達此指令,則隔天才關機
[root@www ~]# shutdown -h +10
系統再過十分鐘後自動關機
[root@www ~]# shutdown -r now
系統立马又一次開機
[root@www ~]# shutdown -r +30 'The system will reboot'
再過三十分鐘系統會又一次開機,並顯示後面的訊息給全部在線上的使用者
[root@www ~]# shutdown -k now 'This system will reboot'
僅發出警告信件的参數!系統並不會關機啦!嚇唬人!



又一次開機,關機: reboot, halt, poweroff


還有三個指令能够進行又一次開機與關機的任務,那就是reboot, halt, poweroff。 其實這三個指令呼叫的函式庫都差点儿相同,所以當你使用『man reboot』時,會同時出現三個指令的使用方法給你看呢。 其實鳥哥通常都仅仅有記shutdown與reboot這兩個指令啦!不過使用poweroff這個指令卻比较簡單就是了!^_^ 通常鳥哥在又一次開機時,都會下達例如以下的指令喔:

[root@www ~]# sync; sync; sync; reboot


既然這些指令都能夠關機或又一次開機,那他有沒有什麼差異啊?基本上,在預設的情況下, 這幾個指令都會完毕一樣的工作!(因為halt會先呼叫shutdown,而shutdown最後會呼叫halt!)。 不過,shutdown能够依據眼下已啟動的服務來逐次關閉各服務後才關機;至於halt卻能夠在不理會眼下系統狀況下, 進行硬體關機的特殊功能!你能够在你的主機上面使用root進行底下兩個指令來關機,比较看看差異在哪裡喔!

[root@www ~]# shutdown -h now
[root@www ~]# poweroff -f


很多其它halt與poweroff的選項功能,請務必使用man去查詢一下喔!

 

 



切換執行等級: init


本章上頭有談到過關於run level的問題。之前談到的是系統運作的模式,分為純文字(run level 3)及圖形介面模式(run level 5)。除了這兩種模式外,有沒有其它模式呢?其實Linux共同拥有七種執行等級, 七種等級的意義我們在後面會再談到。本章你仅仅要知道底下四種執行等級就好了:

  • run level 0:關機
  • run level 3:純文字模式
  • run level 5:含有圖形介面模式
  • run level 6:又一次開機

那怎样切換各模式呢?能够使用init這個指令來處理喔!也就是說,假设你想要關機的話, 除了上述的shutdown -h now以及poweroff之外,你也能够使用例如以下的指令來關機:

[root@www ~]# init 0