Linux中國

關機時間太長的調查和解決的方法

你的 Linux 系統關機時間太長么?以下是你可以採取的步驟,來找出導致延遲關機的原因並解決這個問題。

我希望你對 sigterm 和 sigkill 的概念有一點熟悉。

當你關閉 Linux 系統時,它會發送終止信號(sigterm),並禮貌地要求正在運行的進程停止。有些進程不符合該行為,它們會忽略終止信號並繼續運行。

這可能會導致關機過程的延遲,因為你的系統會在一個預定義的時間段內等待運行的進程停止。在這個時間段之後,它會發送 kill 信號來強制停止所有剩餘的運行進程並關閉系統。

事實上,在某些情況下,你會在黑屏上看到一個類似 「a stop job is running」 的信息。

如果你的系統關閉時間太長,你可以做以下工作:

  • 檢查哪個進程/服務耗時過長,以及你是否能刪除或重新配置它,使其正常運行。
  • 更改系統強制停止運行進程前的默認等待時間。(快速而不優雅的方式)

我的操作系統是使用 systemd 的 Ubuntu。這裡的命令和步驟適用於任何使用 systemd 的 Linux 發行版(大多數發行版都是這樣)。

檢查哪些進程會導致 Linux 的長時間關機

如果你想找出問題所在,你應該檢查上次關機時發生了什麼。使用這個命令來獲得「我知道你上個會話做了什麼」(I Know What You Did Last Summer 的雙關語)的力量。

journalctl -rb -1

journalctl 命令能讓你讀取系統日誌。使用選項 -b -1 可以過濾最後一次啟動會話的日誌。使用選項 -r 時,日誌將按時間倒序顯示。

換句話說,journalctl -rb -1 命令將顯示最後一次關閉 Linux 系統之前的系統日誌。這裡就是你需要分析 Linux 系統長時間關機問題的地方。

沒有 journal 日誌?下面是你應該做的。

如果沒有 journal 日誌,請確認你的發行版是否使用 systemd。

即使在一些使用 systemd 的 Linux 發行版上,journal 日誌也沒有被默認激活。

請確認 /var/log/journal 是否存在。如果不存在,請創建它:

sudo mkdir /var/log/journal

你還應該檢查 /etc/systemd/journald.conf 文件的內容,並確保 Storage 的值被設置為自動(auto)或持久(persistent)。

你是否在日誌中發現可疑的東西?是否有一個進程/服務拒絕停止?如果是,調查一下是否可以在沒有副作用的情況下刪除它,或者是否可以重新配置它。請不要在這裡盲目地去刪除東西。你應該對這個進程有所了解。

通過減少默認停止超時來加快 Linux 中的關機速度(快速修復)

關機的默認等待時間通常設置為 90 秒。在這個時間之後,你的系統會嘗試強制停止服務。

如果你想讓你的 Linux 系統快速關閉,你可以改變這個等待時間。

你可以在位於 /etc/systemd/system.conf 的配置文件中找到所有的 systemd 設置。這個文件中應該有很多以 # 開頭的行。它們代表了文件中各條目的默認值。

在開始之前,最好先複製一份原始文件。

sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.orig

在這裡尋找 DefaultTimeoutStopSec。它可能被設置為 90 秒。

#DefaultTimeoutStopSec=90s

你得把這個值改成更方便的,比如 5 秒或 10 秒。

DefaultTimeoutStopSec=5s

如果你不知道如何在終端中編輯配置文件,可以使用這個命令在系統默認的文本編輯器(如 Gedit)中打開文件進行編輯:

sudo xdg-open /etc/systemd/system.conf

Change Shutdown Time Settings Ubuntu

不要忘記刪除 DefaultTimeoutStopSec 前的 #。保存文件並重啟系統。

這將幫助你減少 Linux 系統的關機延遲。

看門狗問題!

Linux 有一個名為看門狗的模塊,用於監控某些服務是否在運行。它可以被配置為在系統因軟體錯誤而掛起時自動重啟系統。

在桌面系統上使用看門狗是不常見的,因為你可以手動關閉或重啟系統。它經常被用於遠程伺服器上。

首先檢查看門狗是否在運行:

ps -af | grep watch*

如果你的系統正在運行看門狗,你可以在 systemd 配置文件 /etc/systemd/system.conf 中將 ShutdownWatchdogSec 的值從 10 分鐘改為更低的值。

你能解決關機時間過長的問題嗎?

希望本教程能幫助你解決系統長時間關機的問題。如果你成功解決了這個問題,請在評論中告訴我。

via: https://itsfoss.com/long-shutdown-linux/

作者:Abhishek Prakash 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國