【Linux關機】常用關機命令及其比較

linux下常用的關機命令有:shutdown、halt、poweroff、init;重啓命令有:reboot。
比較常用的:
關機命令:
1、halt   立刻關機 
2、poweroff  立刻關機 
3、shutdown -h now 立刻關機(root用戶使用) 
4、shutdown -h 10 10分鐘後自動關機 
如果是通過shutdown命令設置關機的話,可以用shutdown -c 命令取消重啓
重啓命令:
1、reboot 
2、shutdown -r now 立刻重啓(root用戶使用) 
3、shutdown -r 10 過10分鐘自動重啓(root用戶使用)  
4、shutdown -r 20:35 在時間爲20:35時候重啓(root用戶使用) 
如果是通過shutdown命令設置重啓的話,可以用shutdown -c命令取消重啓

幾種關機命令區別及其各自用法:
1.shutdown 安全的關機命令
對於shutdown命令,它是大家都推薦的一個安全的命令,通過參數-h或-r的配合來完成關機或重啓。不過在linux系統中只有擁有root權限纔可以使用這個命令。所以,雖然大家都推薦用這個命令,但是使用這個命令需要首先獲得root權限。shutdown執行關機,是發送信號給init,要求它改變運行級別,以此來關機。關機或重啓實際上是運行級別的調整,所以我們也可以用init直接調整運行級別來進行關機或重啓。使用這個命令時,機器立即關機或重啓。它也需要root權限。
那麼爲什麼說shutdown命令是安全地將系統關機呢?
實際中有些用戶會使用直接斷掉電源的方式來關閉linux,這是十分危險的。因爲linuxwindows不同,其後臺運行着許多進程,所以強制關機可能會導致進程的數據丟失使系統處於不穩定的狀態。甚至在有的系統中會損壞硬件設備。而在系統關機前使用shutdown命令,系統管理員會通知所有登錄的用戶系統將要關閉。並且login指令會被凍結,即新的用戶不能再登錄。直接關機或者延遲一定的時間才關機都是可能的,還有可能是重啓。這是由所有進程〔process〕都會收到系統所送達的信號〔signal〕決定的。
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系統調用文件系統寫操作完成後就會停止內核。
halt 參數說明:
[-n] 防止sync系統調用,它用在用fsck修補根分區之後,以阻止內核用老版本的超級塊〔superblock〕覆蓋修補過的超級塊。 
[-w] 並不是真正的重啓或關機,只是寫wtmp〔/var/log/wtmp〕紀錄。 
[-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。 
[-f] 沒有調用shutdown而強制關機或重啓。 
[-i] 關機〔或重啓〕前關掉所有的網絡接口。 
[-p] 該選項爲缺省選項。就是關機時調用poweroff。
3.poweroff 常用的關機命令
對於poweroff,網上說它是halt命令的鏈接,基本用法和 halt 差不多,這裏就不多說了。
4.init
init是所有進程的祖先,他是Linux系統操作中不可缺少的程序之一。它的進程號始終爲1,所以發送TERM信號給init會終止所有的用戶進程,守護進程等。shutdown 就是使用這種機制。init定義了8個運行級別(runlevel),init 0爲關機,init 1爲重啓。
5.reboot 重啓命令
reboot的工作過程差不多跟halt一樣。不過它是引發主機重啓,而halt是關機。它的參數與halt相差不多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章