<center><b>提問:你是如何關閉電腦的?</b><br/></center>服務器
<center>普通青年</center>命令行
<center>文藝青年</center>code
<center>二逼青年</center>blog
你是屬於哪種呢?開發
實話說,it
這三種良許都幹過~登錄
還好我沒有對服務器這麼作,兼容性
不然……硬件
分分鐘被打進 ICU ……程序
對於 Linux 電腦,正常狀況下你是如何關機的?想必你們應該都是相似這樣操做:
可是,對於不少服務器,它們並無 GUI 界面,或者不少服務器咱們是經過 SSH 來遠程操做,那麼咱們只能經過命令行來進行關機。Linux 和類Unix 系統(如macOS)都爲你們提供了幾個命令來從命令行關閉或重啓系統,通常有下幾個命令:
這些命令從漢語字面意義來看,多少有些類似,可能會讓人以爲困惑。可是若是使用一些相應的選項,全部這些命令均可以執行關機、重啓和掛起等操做。但實際上,你用 man 命令來查看這幾個命令的用法,出來的結果都是同樣的,以下圖所示。
爲何會是這樣的狀況呢?咱們要從這幾個命令的淵源提及。
爲何那幾個關機命令的 man page 都同樣?其實緣由很簡單,就是由於 Systemd 系統取代了古老的 system v init 系統。在 Linux 世界中,Fedora 在 2011 年開始使用 init 引導程序,從那之後許多發行版開始紛紛效仿。
可是,Debian 和 Ubuntu 於 2015 年開始切換到 Systemd 引導程序。
在基於 Systemd 的發行版上,shutdown、reboot、halt 和 poweroff 命令實際上都是指向 systemctl 命令的快捷方式。爲了保持與基於 system v init 的發行版的兼容性,Systemd 系統保留了這些命令。
一臺服務器一般會有多人一塊兒使用,因此若是須要關閉或重啓的話,咱們須要提早作好計劃,不然擅自關機的話會分分鐘被同事打進 ICU 。
接下來,咱們來重點講解 shutdown 命令的用法。
因此,爲了不被揍,咱們須要在關機以前告知全部已經登陸的用戶,提醒他們作好保存的工做。好比,咱們打算從如今開始 15 分鐘後關閉系統,須要鍵入以下命令:
$ shutdown +15 Shutting down in 15 minutes!
其中,+15
表示從如今起 15 分鐘後,這裏 +
號是可選的。而在 +15 以後跟的那串信息就是會通知到全部已經登陸系統的用戶的信息。
因此,當以上命令執行以後,全部已經登陸系統的用戶都會收到 Shutting down in 15 minutes!
這條信息,而且 15 分鐘後系統將關閉。
若是咱們要取消關閉,可使用 -c
選項。
$ shutdown -c
一樣地,全部已登陸的用戶都會收到一條 The system shutdown has been cancelled
的通知。
若是咱們在 shutdown 命令以後不跟任何參數,那麼默認就是在 1 分鐘後關機。同時,這樣操做不會通知在線的用戶。因此,這樣作很危險,必定要慎重。
$ shutdown
若是咱們甚至連一分鐘都等不了,那麼咱們能夠在 shutdown 後面跟上 now,表明關閉當即生效。使用 now 就等同於使用了 +0
參數。
另外,時間參數也能夠是咱們指望關機的具體時間,例如 23:00 。但它必須遵循 HH:MM
的格式,而且必須是 24 小時式。執行這條命令後,在系統關閉的前 5 分鐘,新的登陸將被阻止。
默認狀況下 shutdown 命令會使計算機進入掛起狀態,而後進入關機狀態。可是,咱們可使用其它選項來改變這個默認操做:
-H
(中止),將咱們的計算機進入掛起狀態,但不會要求硬件斷電。-P
(關機)是默認操做,將計算機切換到掛起狀態,而後關閉電源。-r
(從新啓動),將咱們的計算機進入掛起狀態,而後從新啓動。-h
(掛起並關機)與 -P
同樣,若是同時使用-h和-H,則優先使用-H選項-c
(取消)該選項將取消任何定時關機,掛起或重啓。好比下面這個重啓的例子:
$ shutdown -r 08:20 System rebooting at 08:20
-----------------
我是良許,世界500強外企 Linux 開發工程師,專業生產 Linux 乾貨。歡迎關注個人公衆號「良許Linux」,回覆「1024」獲取最新最全的技術資料,回覆「入羣」進入高手如雲技術交流羣。