良許 | 聽說,有個同事因為關閉伺服器被打進 ICU ……

来源:https://www.cnblogs.com/yychuyu/archive/2019/09/09/11491179.html
-Advertisement-
Play Games

提問:你是如何關閉電腦的? 普通青年 文藝青年 二逼青年 你是屬於哪一種呢? 實話說, 這三種良許都乾過~ 還好我沒有對伺服器這麼做, 否則…… 分分鐘被打進 ICU …… 1. 關機命令知多少 對於 Linux 電腦,正常情況下你是如何關機的?想必大家應該都是類似這樣操作: 但是,對於很多伺服器, ...


提問:你是如何關閉電腦的?
普通青年

文藝青年

二逼青年

你是屬於哪一種呢?

實話說,

這三種良許都乾過~

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

否則……

分分鐘被打進 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

-----------------

我是良許,世界500強外企 Linux 開發工程師,專業生產 Linux 乾貨。歡迎關註我的公眾號「良許Linux」,回覆「1024」獲取最新最全的技術資料,回覆「入群」進入高手如雲技術交流群。

img


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 在上一篇文章【(轉載)非常完善的Log4net配置詳細說明】介紹了Log4Net的配置說明,如果不知道的可以去看看,這裡我們就介紹一下日誌記錄的實現,說得都比較基礎,所以大神請繞過。 二、Log4Net實現 前面介紹了了Log4Net的配置,這裡我在把我用的額Log4Net 的配置信息展示 ...
  • 本文翻譯自微軟官方 Bindable Properties, 介紹了可綁定屬性,並演示瞭如何創建和使用它們。可綁定屬性是一種特殊類型的屬性,其中屬性的值由Xamarin.Forms屬性系統跟蹤。 ...
  • 一、前言 在項目中,對項目的日誌收集是非常重要的,這裡我就說說代碼的異常日誌收集。收集異常日誌,有很多第三方成熟的框架,我這裡就介紹一下我常用的Log4net。 Log4Net介紹 Log4net 是 Apache 下一款非常著名的基於.net開發的記錄日誌開源組件,它是Log4j 的一個克隆版。L ...
  • solo,一款小而美的博客系統,GitHub:https://github.com/b3log/solo ## 環境和文件準備 - 伺服器:用的阿裡雲伺服器,系統是CentOS 7.3 64 位。 - JDK:1.8 - Tomcat: 9.0.24 - MySQL:5.7 - solo:solo- ...
  • netstat -ano|findstr 8080 taskkill /pid 4632 /F ...
  • 一、系統環境 macOS High Sierra(版本:10.13.6) MacBook Air (13-inch, Early 2015) 二、解決步驟 1. 新建.bash_profile文件 $ touch .bash_profile 2. 打開.bash_profile文件 $ open . ...
  • 簡介 lrzsz 官網入口:http://freecode.com/projects/lrzsz/ lrzsz是一個unix通信套件提供的X,Y,和ZModem文件傳輸協議 windows 需要向centos伺服器上傳文件,可直接在centos上執行命令yum y install lrzsz 程式會 ...
  • 創建及管理LVM分區。 Lvm(logical volume manager)邏輯捲管理 作用:動態調整磁碟容量,提高磁碟管理的靈活性。 註意:/boot分區用於存放引導文件,不能基於LVM創建。 圖形化界面管理工具 System-config-lvm Lvm機制的基本概念 PV(Physical ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...