沒有操做系統是完美的。 即便相對穩定,驅動程序和應用程序也可能存在問題。 Linux也不例外。 儘管比Windows更穩定(在許多狀況下,並不是所有!),但可能還須要從新啓動Linux計算機。 這多是由於某些東西不起做用。 或者,您可能經過SSH鏈接到遠程計算機或服務器,並但願它從新啓動或徹底關閉。linux
可是你怎麼作呢? 有幾個命令可用於經過命令行關閉或從新啓動(或從新啓動)Linux計算機。面試
讓咱們依次研究它們,並研究應該如何以及什麼時候使用這些命令。bash
一、關機服務器
若是您已經使用了Linux機器,那麼簡單地關閉它的解決方案就是使用經過SSH發送的關機指令(若是您使用的是Windows PC,那麼您有幾個SSH工具可供選擇)。這能夠用來永久關閉計算機(直到您決定從新啓動它)或從新啓動。該命令的語法以下:架構
shutdown [option] [time] [message]工具
例如,要當即關閉計算機,您將使用:學習
shutdown -h now 複製代碼
這裏,-h表示暫停,而如今明確表示該指令應當即執行。 可使用不一樣的延遲。 例如,您可使用+9代替,這將告訴計算機在9分鐘內運行關機程序。ui
若是你想包含一條信息,這條信息將會顯示給全部已登陸的用戶:spa
linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +9 "服務器正在關閉,請保存您的工做並註銷。" Shutdown scheduled for Sun 2019-04-28 10:37:30 CST, use 'shutdown -c' to cancel. 複製代碼
請記住,您能夠找到這些命令的開關的完整列表,輸入:操作系統
[command] --help 複製代碼
用-r從新啓動
另外一種選擇是使用-r命令從新啓動計算機。 這用於代替-h,所以要從新啓動計算機或服務器,您可使用:
linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +3 "服務器將在在3分鐘後從新啓動, 請保存您的工做並註銷。" Shutdown scheduled for Sun 2019-04-28 10:49:38 CST, use 'shutdown -c' to cancel. 複製代碼
能夠經過輸入shutdown -c命令取消任何計劃的關閉或從新啓動:
linuxidc@linuxidc:~/linuxidc.com$ shutdown -c 複製代碼
二、從新啓動
因爲shutdown命令具備重啓選項,所以瞭解reboot命令有關閉選項也就不足爲奇了。
標準的重啓命令是:
reboot 複製代碼
這將提示您的計算機自動關閉,而後再從新打開。然而,若是你想關掉設備,那麼-p開關將工做:
reboot -p 複製代碼
另外一種選擇是強制重啓。若是應用程序或服務正在掛起,而您須要快速重啓,這將很是有用:
reboot -f 複製代碼
這將強制從新啓動Linux機器。
三、Halt
咱們已經看到了上面的-h開關,可是halt能夠單獨用做命令。這將致使計算機當即關閉,用一個簡單的四個字母單詞:
halt 複製代碼
-f開關也能夠用於暫停,但結果不一致,而且可能致使系統穩定性問題。
四、定時關機
您可能更喜歡poweroff命令的術語。這與halt徹底相同,只是它須要兩倍的輸入時間。
可是,除了使用-f強制關機外,還可使用-w開關將系統重啓調用記錄到/var/log/wtmp。這是一個潛在有用的調試工具,就像-verbose同樣,它能夠幫助解決關機問題。
poweroff --verbose 複製代碼
五、緊急選項:REISUB
當系統運行正常時,可使用上面的全部命令。但若是它崩潰了呢?若是PC或服務器正在掛起,沒法以合適的方式從新啓動,該怎麼辦?
答案就是鍵盤組合。若是您已從Windows切換,您可能知道Ctrl + Alt + Del會顯示一個菜單,其中包含Shutdown做爲選項。若是保持更長時間,機器將自動關閉。同時,在Mac上,您只需按住電源按鈕(也適用於Windows硬件的選項)。
在Linux中,鍵盤組合爲Alt + Print Screen + B以從新啓動。 可是,若是這不起做用,或者存在更復雜的問題,則可使用最多六個鍵來更改組合。
這就是所謂的REISUB,是取如下詞語的縮略語:
要使其起做用,您應按下Alt + Print Screen,而後按順序按下R E I S U B鍵。 在每一個按鍵之間留一兩秒。 請注意,此方法一般不適用於具備ARM體系結構的計算機(例如Raspberry Pi)。
救命,我不當心關閉了個人Linux PC或服務器!
咱們已經瞭解瞭如何取消關機或重啓命令。然而,當一個重要的進程正在運行時,您很容易啓動shutdown命令——尤爲是在遠程服務器上。解決這個問題的一種方法是安裝molly-guard,它能夠經過檢查某些參數來覆蓋關機。
例如,有一個腳本檢查SSH會話(與FTP不一樣)。若是您發送從新啓動、中止、關機或關機命令,molly-guard將要求您要關閉的主機的名稱。
要使用它,請在終端中安裝molly-guard:
linuxidc@linuxidc:~/linuxidc.com$ sudo apt-get install molly-guard 複製代碼
當molly-guard在後臺運行時,它將檢測諸如poweroff之類的命令,並報告已檢測到SSH會話。 而後,您能夠選擇輸入服務器的主機名以確認關閉,或者按Ctrl + C取消。 有用!
從命令行關閉Linux計算機的這五種方法特別有用,由於它們能夠在計算機自己上使用,也能夠經過遠程SSH使用。 因爲這些命令很是簡潔,所以能夠快速使用 - 這可能會致使意外重啓! 幸運的是,molly-guard實用程序足以免這種狀況。
以爲不錯請點贊支持,歡迎留言或進個人我的羣855801563領取【架構資料專題目合集90期】、【BATJTMD大廠JAVA面試真題1000+】,本羣專用於學習交流技術、分享面試機會,拒絕廣告,我也會在羣內不按期答題、探討。