一直使用Windows的朋友一起來(lái)學(xué)習(xí)一下linux吧,在眾多基礎(chǔ)知識(shí)中l(wèi)inux關(guān)機(jī)命令也是很重要的哦,在linux中關(guān)機(jī)
命令有很多個(gè),如:shutdown、halt、poweroff、init;重啟命令有:reboot。不過(guò)這幾個(gè)命令的使用方法和環(huán)境不一樣,下面小編具體分享下區(qū)別及使用方法
首先來(lái)看一下linux下比較常用的一些關(guān)機(jī)命令
關(guān)機(jī)命令:
1、halt 立刻關(guān)機(jī)
2、poweroff 立刻關(guān)機(jī)
3、shutdown -h now 立刻關(guān)機(jī)(root用戶(hù)使用)
4、shutdown -h 10 10分鐘后自動(dòng)關(guān)機(jī) 如果是通過(guò)shutdown命令設(shè)置關(guān)機(jī)的話(huà),可以用shutdown -c命令取消重啟
重啟命令:
1、reboot
2、shutdown -r now 立刻重啟(root用戶(hù)使用)
3、shutdown -r 10 過(guò)10分鐘自動(dòng)重啟(root用戶(hù)使用)
4、shutdown -r 20:35 在時(shí)間為20:35時(shí)候重啟(root用戶(hù)使用) 如果是通過(guò)shutdown命令設(shè)置重啟的話(huà),可以用shutdown -c命令取消重啟
下面我們來(lái)看看linux的這些具體的關(guān)機(jī)命令之間的區(qū)別和各自的用法
1.shutdown 安全的關(guān)機(jī)命令
對(duì)于shutdown命令,它是大家都推薦的一個(gè)安全的命令,通過(guò)參數(shù)-h或-r的配合來(lái)完成關(guān)機(jī)或重啟。不過(guò)在linux系統(tǒng)中只有擁有root權(quán)限才可以使用這個(gè)命令。所以,雖然大家都推薦用這個(gè)命令,但是這個(gè)命令用起來(lái)真的不太方便:想要用這個(gè)命令嗎?先去獲得root權(quán)限吧。shutdown執(zhí)行關(guān)機(jī),是送信號(hào)給init,要求它改變運(yùn)行級(jí)別,以此來(lái)關(guān)機(jī)。關(guān)機(jī)或重啟實(shí)際上是運(yùn)行級(jí)別的調(diào)整,所以我們也可以用init直接調(diào)整運(yùn)行級(jí)別來(lái)進(jìn)行關(guān)機(jī)或重啟。使用這個(gè)命令時(shí),機(jī)器立即關(guān)機(jī)或重啟。它也需要root權(quán)限。
那么為什么說(shuō)shutdown命令是安全地將系統(tǒng)關(guān)機(jī)呢?
實(shí)際中有些用戶(hù)會(huì)使用直接斷掉電源的方式來(lái)關(guān)閉linux,這是十分危險(xiǎn)的。因?yàn)閘inux與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)。甚至在有的系統(tǒng)中會(huì)損壞硬件設(shè)備。而在系統(tǒng)關(guān)機(jī)前使用shutdown命令,系統(tǒng)管理員會(huì)通知所有登錄的用戶(hù)系統(tǒng)將要關(guān)閉。并且login指令會(huì)被凍結(jié),即新的用戶(hù)不能再登錄。直接關(guān)機(jī)或者延遲一定的時(shí)間才關(guān)機(jī)都是可能的,還有可能是重啟。這是由所有進(jìn)程〔process〕都會(huì)收到系統(tǒng)所送達(dá)的信號(hào)〔signal〕決定的。
shutdown執(zhí)行它的工作是送信號(hào)〔signal〕給init程序,要求它改變 runlevel。runlevel 0 被用來(lái)停機(jī)〔halt〕,runlevel 6 是用來(lái)重新激活〔reboot〕系統(tǒng),而 runlevel 1則是被用來(lái)讓系統(tǒng)進(jìn)入管理工作可以進(jìn)行的狀態(tài),這是預(yù)設(shè)的。假定沒(méi)有-h也沒(méi)有-r參數(shù)給shutdown。要想了解在停機(jī)〔halt〕或者重新開(kāi)機(jī)〔reboot〕過(guò)程中做了哪些動(dòng)作?你可以在這個(gè)文件/etc/inittab里看到這些runlevels相關(guān)的資料。
shutdown 參數(shù)說(shuō)明:
語(yǔ)法:shutdown [-t秒] [-arkhncfF] 時(shí)間 警告消息(單引號(hào))
-t:后面加描述表示過(guò)幾秒之后關(guān)機(jī)。
-k:不是真的關(guān)機(jī),僅僅發(fā)出警告消息。
-r:將系統(tǒng)服務(wù)停掉之后重啟。
-h:將系統(tǒng)服務(wù)停掉之后立即關(guān)機(jī)。
-f:關(guān)機(jī)并開(kāi)機(jī)之后,強(qiáng)制跳過(guò)fsck的磁盤(pán)檢查。
-F:系統(tǒng)重啟之后,強(qiáng)制進(jìn)行fsck的磁盤(pán)檢查。
-c:取消已經(jīng)進(jìn)行的shutdown命令內(nèi)容。
2.halt 最簡(jiǎn)單的關(guān)機(jī)命令
用halt命令來(lái)關(guān)機(jī)時(shí),實(shí)際調(diào)用的是shutdown -h。halt 執(zhí)行時(shí)將殺死應(yīng)用進(jìn)程,執(zhí)行sync系統(tǒng)調(diào)用文件系統(tǒng)寫(xiě)操作完成后就會(huì)停止內(nèi)核。
halt 參數(shù)說(shuō)明:
[-n] 防止sync系統(tǒng)調(diào)用,它用在用fsck修補(bǔ)根分區(qū)之后,以阻止內(nèi)核用老版本的超級(jí)塊〔superblock〕覆蓋修補(bǔ)過(guò)的超級(jí)塊。 [-w] 并不是真正的重啟或關(guān)機(jī),只是寫(xiě)wtmp〔/var/log/wtmp〕紀(jì)錄。 [-d] 不寫(xiě)wtmp紀(jì)錄〔已包含在選項(xiàng)[-n]中〕。 [-f] 沒(méi)有調(diào)用shutdown而強(qiáng)制關(guān)機(jī)或重啟。 [-i] 關(guān)機(jī)〔或重啟〕前關(guān)掉所有的網(wǎng)絡(luò)接口。 [-p] 該選項(xiàng)為缺省選項(xiàng)。就是關(guān)機(jī)時(shí)調(diào)用poweroff。
3.poweroff 常用的關(guān)機(jī)命令
對(duì)于poweroff,網(wǎng)上說(shuō)它是halt命令的鏈接,基本用法和 halt 差不多,這里就不多說(shuō)了。
4.init
init是所有進(jìn)程的祖先,他是Linux系統(tǒng)操作中不可缺少的程序之一。它的進(jìn)程號(hào)始終為1,所以發(fā)送TERM信號(hào)給init會(huì)終止所有的用戶(hù)進(jìn)程,守護(hù)進(jìn)程等。shutdown 就是使用這種機(jī)制。init定義了8個(gè)運(yùn)行級(jí)別(runlevel),init 0為關(guān)機(jī),init 1為重啟。
那如何切換各模式呢?可以使用init這個(gè)命令來(lái)處理!也就是說(shuō),如果你想要關(guān)機(jī)的話(huà),除了上述的shutdown -h now以及poweroff之外,你也可以使用如下的命令來(lái)關(guān)機(jī):
[root@www ~]# init 0
5.reboot 重啟命令
reboot的工作過(guò)程差不多跟halt一樣。不過(guò)它是引發(fā)主機(jī)重啟,而halt是關(guān)機(jī)。它的參數(shù)與halt相差不多
上面就是小編整理的關(guān)于linux系統(tǒng)關(guān)機(jī)命令和使用方法詳解了。