Linux關(guān)機(jī)命令詳解有幾種
Linux系統(tǒng)中經(jīng)常用到關(guān)機(jī)和重啟命令,在linux下一些常用的關(guān)機(jī)/重啟命令有shutdown、halt、reboot、及init,它們都可以達(dá)到重啟系統(tǒng)的目的,通過(guò)本文的介紹,希望你可以更加靈活的運(yùn)用各種關(guān)機(jī)命令。
關(guān)機(jī)命令:
1、halt 立刻關(guān)機(jī) 2、poweroff 立刻關(guān)機(jī) 3、shutdown -h now 立刻關(guān)機(jī)(root用戶使用) 4、shutdown -h 10 10分鐘后自動(dòng)關(guān)機(jī) 如果是通過(guò)shutdown命令設(shè)置關(guān)機(jī)的話,可以用shutdown -c命令取消重啟
Linux centos關(guān)機(jī)命令:
1、halt 立刻關(guān)機(jī)
2、poweroff 立刻關(guān)機(jī)
3、shutdown -h now 立刻關(guān)機(jī)(root用戶使用)
4、shutdown -h 10 10分鐘后自動(dòng)關(guān)機(jī)
如果是通過(guò)shutdown命令設(shè)置關(guān)機(jī)的話,可以用shutdown -c命令取消重啟
1.shutdown
shutdown命令安全地將系統(tǒng)關(guān)機(jī)。 有些用戶會(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ì)通知所有登錄的用戶系統(tǒng)將要關(guān)閉。并且login指令會(huì)被凍結(jié)﹐即新的用戶不能再登錄。直接關(guān)機(jī)或者延遲一定的時(shí)間才關(guān)機(jī)都是可能的﹐還可能重啟。這是由所有進(jìn)程〔process〕都會(huì)收到系統(tǒng)所送達(dá)的信號(hào)〔signal〕決定的。這讓像vi之類的程序有時(shí)間儲(chǔ)存目前正在編輯的文檔﹐而像處理郵件〔mail〕和新聞〔news〕的程序則可以正常地離開等等。
shutdown執(zhí)行它的工作是送信號(hào)〔signal〕給init程序﹐要求它改變r(jià)unlevel。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〕或者重新開機(jī)〔reboot〕過(guò)程中做了哪些動(dòng)作﹐你可以在這個(gè)文件/etc/inittab里看到這些runlevels相關(guān)的資料。
shutdown 參數(shù)說(shuō)明:
[-t] 在改變到其它runlevel之前﹐告訴init多久以后關(guān)機(jī)。
[-r] 重啟計(jì)算器。
[-k] 并不真正關(guān)機(jī)﹐只是送警告信號(hào)給每位登錄者〔login〕。
[-h] 關(guān)機(jī)后關(guān)閉電源〔halt〕。
[-n] 不用init﹐而是自己來(lái)關(guān)機(jī)。不鼓勵(lì)使用這個(gè)選項(xiàng)﹐而且該選項(xiàng)所產(chǎn)生的后果往往不總是你所預(yù)期得到的。
[-c] cancel current process取消目前正在執(zhí)行的關(guān)機(jī)程序。所以這個(gè)選項(xiàng)當(dāng)然沒(méi)有時(shí)間參數(shù)﹐但是可以輸入一個(gè)用來(lái)解釋的訊息﹐而這信息將會(huì)送到每位使用者。
[-f] 在重啟計(jì)算器〔reboot〕時(shí)忽略fsck。
[-F] 在重啟計(jì)算器〔reboot〕時(shí)強(qiáng)迫f(wàn)sck。
[-time] 設(shè)定關(guān)機(jī)〔shutdown〕前的時(shí)間。
2.halt----最簡(jiǎn)單的關(guān)機(jī)命令
其實(shí)halt就是調(diào)用shutdown -h。halt執(zhí)行時(shí)﹐殺死應(yīng)用進(jìn)程﹐執(zhí)行sync系統(tǒng)調(diào)用﹐文件系統(tǒng)寫操作完成后就會(huì)停止內(nèi)核。
參數(shù)說(shuō)明:
[-n] 防止sync系統(tǒng)調(diào)用﹐它用在用fsck修補(bǔ)根分區(qū)之后﹐以阻止內(nèi)核用老版本的超級(jí)塊〔superblock〕覆蓋修補(bǔ)過(guò)的超級(jí)塊。
[-w] 并不是真正的重啟或關(guān)機(jī)﹐只是寫wtmp〔/var/log/wtmp〕紀(jì)錄。
[-d] 不寫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.reboot
reboot的工作過(guò)程差不多跟halt一樣﹐不過(guò)它是引發(fā)主機(jī)重啟﹐而halt是關(guān)機(jī)。它的參數(shù)與halt相差不多。
4.init
init是所有進(jìn)程的祖先﹐它的進(jìn)程號(hào)始終為1﹐所以發(fā)送TERM信號(hào)給init會(huì)終止所有的用戶進(jìn)程﹑守護(hù)進(jìn)程等。shutdown 就是使用這種機(jī)制。init定義了8個(gè)運(yùn)行級(jí)別(runlevel), init 0為關(guān)機(jī)﹐init 1為重啟。關(guān)于init可以長(zhǎng)篇大論﹐這里就不再敘述。另外還有 telinit命令可以改變init的運(yùn)行級(jí)別﹐比如﹐telinit -iS可使系統(tǒng)進(jìn)入單用戶模式﹐并且得不到使用shutdown時(shí)的信息和等待時(shí)間。
5.reboot 重啟命令
reboot的工作過(guò)程差不多跟halt一樣。不過(guò)它是引發(fā)主機(jī)重啟,而halt是關(guān)機(jī)。它的參數(shù)與halt相差不多。
補(bǔ)充:Linux基本命令
?、賚s 意為list 列出當(dāng)前文件夾中的文件
-l 顯示文件的屬性 可用ll來(lái)表示
②alias 別名 看看是否有別名的文件
?、踓d dir 跳躍目錄 -P選項(xiàng) 將路徑中的鏈接文件替換成鏈接指向的文件路徑
④pwd 查看當(dāng)前工作的文件夾名 使用-P的選項(xiàng),會(huì)直接進(jìn)入到其中,相當(dāng)于cd
相關(guān)閱讀:Linuxshell腳本不執(zhí)行問(wèn)題實(shí)例分析
shell腳本不執(zhí)行問(wèn)題:某天研發(fā)某同事找我說(shuō)幫他看看他寫的shell腳本,死活不執(zhí)行,報(bào)錯(cuò)。我看了下,腳本很簡(jiǎn)單,也沒(méi)有常規(guī)性的錯(cuò)誤,報(bào)“:badinterpreter:Nosuchfileordirectory”錯(cuò)??催@錯(cuò),我就問(wèn)他是不是在windows下編寫的腳本,然后在上傳到linux服務(wù)器的……果然。原因:在DOS/windows里,文本文件的換行符為rn,而在*nix系統(tǒng)里則為n,所以DOS/Windows里編輯過(guò)的文本文件到了*nix里,每一行都多了個(gè)^M。解決:
1)重新在linux下編寫腳本;
2)vi:%s/r//g:%s/^M//g(^M輸入用Ctrl+v,Ctrl+m)附:sh-x腳本文件名,可以單步執(zhí)行并回顯結(jié)果,有助于排查復(fù)雜腳本問(wèn)題。
Linux關(guān)機(jī)命令相關(guān)文章: