服務器不是這麼關滴,否則你的同事不會放過你……

提問:你是如何關閉電腦的?

普通青年

服務器不是這麼關滴,否則你的同事不會放過你……

文藝青年

服務器不是這麼關滴,否則你的同事不會放過你……

二逼青年

服務器不是這麼關滴,否則你的同事不會放過你……

你是屬於哪一種呢?

實話說,

這三種良許都幹過~

還好我沒有對服務器這麼做,

否則……

分分鐘被打進 ICU ……

服務器不是這麼關滴,否則你的同事不會放過你……

1. 關機命令知多少

對於 Linux 電腦,正常情況下你是如何關機的?想必大家應該都是類似這樣操作:

服務器不是這麼關滴,否則你的同事不會放過你……

但是,對於很多服務器,它們並沒有 GUI 界面,或者很多服務器我們是通過 SSH 來遠程操作,那麼我們只能通過命令行來進行關機。Linux 和類Unix 系統(如macOS)都為大家提供了幾個命令來從命令行關閉或重啟系統,一般有下幾個命令:

  • shutdown
  • halt
  • reboot
  • poweroff

這些命令從漢語字面意義來看,多少有些相似,可能會讓人覺得困惑。但是如果使用一些相應的選項,所有這些命令都可以執行關機、重啟和掛起等操作。但實際上,你用 man 命令來查看這幾個命令的用法,出來的結果都是一樣的,如下圖所示。

服務器不是這麼關滴,否則你的同事不會放過你……

為什麼會是這樣的情況呢?我們要從這幾個命令的淵源說起。

2. 深挖關機命令歷史

為什麼那幾個關機命令的 man page 都一樣?其實原因很簡單,就是因為 Systemd 系統取代了古老的 system v init 系統。在 Linux 世界中,Fedora 在 2011 年開始使用 init 引導程序,從那以後許多發行版開始紛紛效仿。

但是,Debian 和 Ubuntu 於 2015 年開始切換到 Systemd 引導程序。

在基於 Systemd 的發行版上,shutdown、reboot、halt 和 poweroff 命令實際上都是指向 systemctl 命令的快捷方式。為了保持與基於 system v init 的發行版的兼容性,Systemd 系統保留了這些命令。

3. 關機命令使用詳解

一臺服務器通常會有多人一起使用,所以如果需要關閉或重啟的話,我們需要提前做好計劃,否則擅自關機的話會分分鐘被同事打進 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
服務器不是這麼關滴,否則你的同事不會放過你……


分享到:


相關文章: