必知的Linux關機/重啟命令
原文地址:http://www.360doc.com/content/10/0818/22/935385_47061591.shtml
摘要:學習知識首先要從基礎學起,不如說現在很多人在學習Linux作業系統,學習Linux就要先瞭解一些Linux命令,本文介紹Linux關機/重啟命令的知識。常用的Linux關機/重啟命令有shutdown、halt、reboot、及init.
標籤:Linux關機 重啟命令
學習知識首先要從基礎學起,不如說現在很多人在學習Linux作業系統,學習Linux就要先瞭解一些Linux命令,本文介紹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〕前的時間。
shutdown之例子學習指定現在立即關機: # shutdown -h now指定5分鐘後關機,同時送出警告資訊給登入使用者:# shutdown +5 “System will shutdown after 5 minutes”
2.halt----最簡單的關機命令
其實halt就是調用shutdown -h。halt執行時﹐殺死應用進程﹐執行sync系統調用﹐檔案系統寫操作完成後就會停止核心。
參數說明:
[-n] 防止sync系統調用﹐它用在用fsck修補根分區之後﹐以阻止核心用老版本的超級塊〔superblock〕覆蓋修補過的超級塊。
[-w] 並不是真正的重啟或關機﹐只是寫wtmp〔/var/log/wtmp〕紀錄。
[-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。
[-f] 沒有調用shutdown而強制關機或重啟。
[-i] 關機〔或重啟〕前﹐關掉所有的網路介面。
[-p] 該選項為預設選項。就是關機時調用poweroff。
halt之例子halt -p 關閉系統後關閉電源。
halt -d 關閉系統,但不留下紀錄。
3.reboot
reboot的工作過程差不多跟halt一樣﹐不過它是引發主機重啟﹐而halt是關機。它的參數與halt相差不多。 //和halt的區別,一個是關機,一個是重啟;
reboot之基礎知識 功能說明:重新開機。
語 法:dreboot [-dfinw]
補充說明:執行reboot指令可讓系統停止運作,並重新開機。
參 數:
-d 重新開機時不把資料寫入記錄檔案/var/tmp/wtmp。本參數具有"-n"參數的效果。
-f 強制重新開機,不調用shutdown指令的功能。
-i 在重開機之前,先關閉所有網路介面。
-n 重開機之前不檢查是否有未結束的程式。
-w 僅做測試,並不真的將系統重新開機,只會把重開機的資料寫入/var/log目錄下的wtmp記錄檔案 reboot之例子
4.init
init是所有進程的祖先﹐它的進程號始終為1﹐所以發送TERM訊號給init會終止所有的使用者進程﹑守護進程等。shutdown 就是使用這種機制。init定義了8個運行層級(runlevel),init 0為關機﹐init 1為重啟。關於init可以長篇大論﹐這裡就不再敘述。另外還有telinit命令可以改變init的運行層級﹐比如﹐telinit -iS可使系統進入單一使用者模式﹐並且得不到使用shutdown時的資訊和等待時間。
以上就是Linux關機/重啟命令的介紹。