從命令行關(guān)閉Linux計(jì)算機(jī)的5種方法
沒(méi)有操作系統(tǒng)是沒(méi)有缺點(diǎn)的。 即使相對(duì)穩(wěn)定,驅(qū)動(dòng)程序和應(yīng)用程序也可能存在問(wèn)題。 Linux也不例外。 盡管比Windows更穩(wěn)定(在許多情況下,并非全部!),但可能還需要重新啟動(dòng)Linux計(jì)算機(jī)。 這可能是因?yàn)槟承〇|西不起作用。 或者,您可能通過(guò)SSH連接到遠(yuǎn)程計(jì)算機(jī)或服務(wù)器,并希望它重新啟動(dòng)或完全關(guān)閉。
但是你怎么做呢? 有幾個(gè)命令可用于通過(guò)命令行關(guān)閉或重新啟動(dòng)(或重新啟動(dòng))Linux計(jì)算機(jī)。
讓我們依次研究它們,并研究應(yīng)該如何以及何時(shí)使用這些命令。
1、關(guān)機(jī)
如果您已經(jīng)使用了Linux機(jī)器,那么簡(jiǎn)單地關(guān)閉它的解決方案就是使用通過(guò)SSH發(fā)送的關(guān)機(jī)指令(如果您使用的是Windows PC,那么您有幾個(gè)SSH工具可供選擇)。這可以用來(lái)關(guān)閉計(jì)算機(jī)(直到您決定重新啟動(dòng)它)或重新啟動(dòng)。該命令的語(yǔ)法如下:
shutdown [option] [time] [message]
例如,要立即關(guān)閉計(jì)算機(jī),您將使用:
- shutdown -h now
這里,-h表示暫停,而現(xiàn)在明確表示該指令應(yīng)立即執(zhí)行。 可以使用不同的延遲。 例如,您可以使用+9代替,這將告訴計(jì)算機(jī)在9分鐘內(nèi)運(yùn)行關(guān)機(jī)程序。
如果你想包含一條信息,這條信息將會(huì)顯示給所有已登錄的用戶:
- linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +9 "服務(wù)器正在關(guān)閉,請(qǐng)保存您的工作并注銷。"
- Shutdown scheduled for Sun 2019-04-28 10:37:30 CST, use 'shutdown -c' to cancel.
請(qǐng)記住,您可以找到這些命令的開關(guān)的完整列表,輸入:
- [command] --help
用-r重新啟動(dòng)
另一種選擇是使用-r命令重新啟動(dòng)計(jì)算機(jī)。 這用于代替-h,因此要重新啟動(dòng)計(jì)算機(jī)或服務(wù)器,您可以使用:
- linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +3 "服務(wù)器將在在3分鐘后重新啟動(dòng), 請(qǐng)保存您的工作并注銷。"
- Shutdown scheduled for Sun 2019-04-28 10:49:38 CST, use 'shutdown -c' to cancel.
可以通過(guò)輸入shutdown -c命令取消任何計(jì)劃的關(guān)閉或重新啟動(dòng):
- linuxidc@linuxidc:~/linuxidc.com$ shutdown -c
2、重新啟動(dòng)
由于shutdown命令具有重啟選項(xiàng),因此了解reboot命令有關(guān)閉選項(xiàng)也就不足為奇了。
標(biāo)準(zhǔn)的重啟命令是:
- reboot
這將提示您的計(jì)算機(jī)自動(dòng)關(guān)閉,然后再重新打開。然而,如果你想關(guān)掉設(shè)備,那么-p開關(guān)將工作:
- reboot -p
另一種選擇是強(qiáng)制重啟。如果應(yīng)用程序或服務(wù)正在掛起,而您需要快速重啟,這將非常有用:
- reboot -f
這將強(qiáng)制重新啟動(dòng)Linux機(jī)器。
3、Halt
我們已經(jīng)看到了上面的-h開關(guān),但是halt可以單獨(dú)用作命令。這將導(dǎo)致計(jì)算機(jī)立即關(guān)閉,用一個(gè)簡(jiǎn)單的四個(gè)字母單詞:
- halt
-f開關(guān)也可以用于暫停,但結(jié)果不一致,并且可能導(dǎo)致系統(tǒng)穩(wěn)定性問(wèn)題。
4、定時(shí)關(guān)機(jī)
您可能更喜歡poweroff命令的術(shù)語(yǔ)。這與halt完全相同,只是它需要兩倍的輸入時(shí)間。
但是,除了使用-f強(qiáng)制關(guān)機(jī)外,還可以使用-w開關(guān)將系統(tǒng)重啟調(diào)用記錄到/var/log/wtmp。這是一個(gè)潛在有用的調(diào)試工具,就像-verbose一樣,它可以幫助解決關(guān)機(jī)問(wèn)題。
- poweroff --verbose
5、緊急選項(xiàng):REISUB
當(dāng)系統(tǒng)運(yùn)行正常時(shí),可以使用上面的所有命令。但如果它崩潰了呢?如果PC或服務(wù)器正在掛起,無(wú)法以合適的方式重新啟動(dòng),該怎么辦?
答案就是鍵盤組合。如果您已從Windows切換,您可能知道Ctrl + Alt + Del會(huì)顯示一個(gè)菜單,其中包含Shutdown作為選項(xiàng)。如果保持更長(zhǎng)時(shí)間,機(jī)器將自動(dòng)關(guān)閉。同時(shí),在Mac上,您只需按住電源按鈕(也適用于Windows硬件的選項(xiàng))。
在Linux中,鍵盤組合為Alt + Print Screen + B以重新啟動(dòng)。 但是,如果這不起作用,或者存在更復(fù)雜的問(wèn)題,則可以使用最多六個(gè)鍵來(lái)更改組合。
這就是所謂的REISUB,是取以下詞語(yǔ)的縮略語(yǔ):
- unRaw - 從X顯示服務(wù)器控制鍵盤。
- tErminate - 將終止信號(hào)SIGTERM發(fā)送到所有進(jìn)程,以便正常終止。
- kIll - 如上所述,但SIGKILL信號(hào)強(qiáng)制立即終止進(jìn)程。
- Sync - 將數(shù)據(jù)刷新到磁盤。
- Unmount- 這會(huì)將所有文件系統(tǒng)重新裝入只讀狀態(tài)。
- reBoot - 正如您所期望的那樣。
要使其起作用,您應(yīng)按下Alt + Print Screen,然后按順序按下R E I S U B鍵。 在每個(gè)按鍵之間留一兩秒。 請(qǐng)注意,此方法通常不適用于具有ARM體系結(jié)構(gòu)的計(jì)算機(jī)(例如Raspberry Pi)。
救命,我不小心關(guān)閉了我的Linux PC或服務(wù)器!
我們已經(jīng)了解了如何取消關(guān)機(jī)或重啟命令。然而,當(dāng)一個(gè)重要的進(jìn)程正在運(yùn)行時(shí),您很容易啟動(dòng)shutdown命令——尤其是在遠(yuǎn)程服務(wù)器上。解決這個(gè)問(wèn)題的一種方法是安裝molly-guard,它可以通過(guò)檢查某些參數(shù)來(lái)覆蓋關(guān)機(jī)。
例如,有一個(gè)腳本檢查SSH會(huì)話(與FTP不同)。如果您發(fā)送重新啟動(dòng)、停止、關(guān)機(jī)或關(guān)機(jī)命令,molly-guard將要求您要關(guān)閉的主機(jī)的名稱。
要使用它,請(qǐng)?jiān)诮K端中安裝molly-guard:
- linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install molly-guard
當(dāng)molly-guard在后臺(tái)運(yùn)行時(shí),它將檢測(cè)諸如poweroff之類的命令,并報(bào)告已檢測(cè)到SSH會(huì)話。 然后,您可以選擇輸入服務(wù)器的主機(jī)名以確認(rèn)關(guān)閉,或者按Ctrl + C取消。 有用!
從命令行關(guān)閉Linux計(jì)算機(jī)的這五種方法特別有用,因?yàn)樗鼈兛梢栽谟?jì)算機(jī)本身上使用,也可以通過(guò)遠(yuǎn)程SSH使用。 由于這些命令非常簡(jiǎn)潔,因此可以快速使用 - 這可能會(huì)導(dǎo)致意外重啟! 幸運(yùn)的是,molly-guard實(shí)用程序足以避免這種情況。