linux中關(guān)機(jī)命令的區(qū)別是:執(zhí)行shutdown命令時(shí),系統(tǒng)會(huì)通知所有登錄的用戶系統(tǒng)將要關(guān)閉;執(zhí)行halt命令時(shí),文件系統(tǒng)寫(xiě)操作完成后,內(nèi)核停止;init命令用于切換系統(tǒng)的運(yùn)行級(jí)別,【init 0】表示關(guān)機(jī)。
Linux中的關(guān)機(jī)命令有shutdown、halt和init,它們都可以達(dá)到關(guān)機(jī)的目的,但是每個(gè)命令的內(nèi)部工作過(guò)程是不同的,下面我們來(lái)分別介紹一下:
(推薦學(xué)習(xí):linux教程)
1、shutdown
shutdown命令用于安全地關(guān)閉Linux系統(tǒng)。
由于Linux與Windows不同,其后臺(tái)運(yùn)行著許多進(jìn)程,所以強(qiáng)制關(guān)機(jī)可能會(huì)導(dǎo)致進(jìn)程的數(shù)據(jù)丟失,使系統(tǒng)處于不穩(wěn)定的狀態(tài),甚至?xí)p壞硬件設(shè)備。
執(zhí)行shutdown命令時(shí),系統(tǒng)會(huì)通知所有登錄的用戶系統(tǒng)將要關(guān)閉,并且login指令會(huì)被凍結(jié),即新的用戶不能再登錄系統(tǒng)。
shutdown命令的工作實(shí)質(zhì)是給init程序發(fā)送信號(hào)(signal),要求其切換系統(tǒng)的運(yùn)行級(jí)別(Runlevel)。
系統(tǒng)的運(yùn)行級(jí)別包括:
-
0:關(guān)閉系統(tǒng)
-
1:?jiǎn)斡脩裟J剑绻麤](méi)有為shutdown命令指定-h或-r參數(shù)而直接執(zhí)行,則默認(rèn)將切換到此運(yùn)行級(jí)別
-
2:多用戶模式(不支持NFS)
-
3:多用戶模式(支持NFS),一般常用此種運(yùn)行級(jí)別
-
5:多用戶模式(GUI模式)
-
6:重新啟動(dòng)系統(tǒng)
2、halt
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、init
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)。