在linux命令中reboot和 shutdown -r now都有重啟系統(tǒng)之意,都說(shuō)他們兩個(gè)是一樣的,其實(shí)是有一定的區(qū)別的。
1.shutdown命令可以安全地關(guān)閉或重啟Linux系統(tǒng),它在系統(tǒng)關(guān)閉之前給系統(tǒng)上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個(gè)時(shí)間參數(shù),可以是一個(gè)精確的時(shí)間,也可以是從現(xiàn)在開(kāi)始的一個(gè)時(shí)間段。
精確時(shí)間的格式是hh:mm,表示小時(shí)和分鐘,時(shí)間段由+ 和分鐘數(shù)表示。系統(tǒng)執(zhí)行該命令后會(huì)自動(dòng)進(jìn)行數(shù)據(jù)同步的工作。
該命令的一般格式: shutdown [選項(xiàng)] [時(shí)間] [警告信息]
命令中各選項(xiàng)的含義為:
- k 并不真正關(guān)機(jī)而只是發(fā)出警告信息給所有用戶
- r 關(guān)機(jī)后立即重新啟動(dòng)
- h 關(guān)機(jī)后不重新啟動(dòng)
- f 快速關(guān)機(jī)重啟動(dòng)時(shí)跳過(guò)fsck
- n 快速關(guān)機(jī)不經(jīng)過(guò)init 程序
- c 取消一個(gè)已經(jīng)運(yùn)行的shutdown
需要特別說(shuō)明的是該命令只能由超級(jí)用戶使用。
例1,系統(tǒng)在十分鐘后關(guān)機(jī)并且馬上重新啟動(dòng): # shutdown –r +10
例2,系統(tǒng)馬上關(guān)機(jī)并且不重新啟動(dòng):# shutdown –h now
2.halt是最簡(jiǎn)單的關(guān)機(jī)命令,其實(shí)際上是調(diào)用shutdown -h命令。halt執(zhí)行時(shí),殺死應(yīng)用進(jìn)程,文件系統(tǒng)寫(xiě)操作完成后就會(huì)停止內(nèi)核。
halt命令的部分參數(shù)如下:
[-f] 沒(méi)有調(diào)用shutdown而強(qiáng)制關(guān)機(jī)或重啟
[-i] 關(guān)機(jī)或重新啟動(dòng)之前,關(guān)掉所有的網(wǎng)絡(luò)接口
[-p] 關(guān)機(jī)時(shí)調(diào)用poweroff,此選項(xiàng)為缺省選項(xiàng)
3.reboot的工作過(guò)程與halt類似,其作用是重新啟動(dòng),而halt是關(guān)機(jī)。其參數(shù)也與halt類似。reboot命令重啟動(dòng)系統(tǒng)時(shí)是刪除所有的進(jìn)程,而不是平穩(wěn)地終止它們。因此,使用reboot命令可以快速地關(guān)閉系統(tǒng),但如果還有其它用戶在該系統(tǒng)上工作時(shí),就會(huì)引起數(shù)據(jù)的丟失。所以使用reboot命令的場(chǎng)合主要是在單用戶模式。
4.init是所有進(jìn)程的祖先,其進(jìn)程號(hào)始終為1。init用于切換系統(tǒng)的運(yùn)行級(jí)別,切換的工作是立即完成的。init 0命令用于立即將系統(tǒng)運(yùn)行級(jí)別切換為0,即關(guān)機(jī);init 6命令用于將系統(tǒng)運(yùn)行級(jí)別切換為6,即重新啟動(dòng)
系統(tǒng)重新啟動(dòng)總結(jié):reboot,init 6,shutdown -r now
系統(tǒng)關(guān)機(jī)總結(jié):init 0, shutdown -h now, half
關(guān)機(jī)命令:
halt 立刻關(guān)機(jī)
poweroff 立刻關(guān)機(jī)
shutdown -h now 立刻關(guān)機(jī)(root用戶使用)
shutdown -h 10 10分鐘后自動(dòng)關(guān)機(jī)