Linux關機時間太長的調查和解決的方法
導讀 | 你的 系統關機時間太長麼?以下是你可以採取的步驟,來找出導致延遲關機的原因並解決這個問題。 |
我希望你對 sigterm 和 sigkill 的概念有一點熟悉。
當你 關閉 Linux 系統 時,它會傳送終止訊號(sigterm),並禮貌地要求正在執行的程式停止。有些程式不符合該行為,它們會忽略終止訊號並繼續執行。
這可能會導致關機過程的延遲,因為你的系統會在一個預定義的時間段內等待執行的程式停止。在這個時間段之後,它會傳送 kill 訊號來強制停止所有剩餘的執行程式並關閉系統。
事實上,在某些情況下,你會在黑屏上看到一個類似 “a stop job is running” 的資訊。
如果你的系統關閉時間太長,你可以做以下工作:
檢查哪個程式/服務耗時過長,以及你是否能刪除或重新配置它,使其正常執行。
更改系統強制停止執行程式前的預設等待時間。(快速而不優雅的方式)
我的作業系統是使用 systemd 的 Ubuntu。這裡的 和步驟適用於任何使用 systemd 的 Linux 發行版(大多數發行版都是這樣)。
如果你想找出問題所在,你應該檢查上次關機時發生了什麼。使用這個 來獲得“我知道你上個會話做了什麼”(I Know What You Did Last Summer 的雙關語)的力量。
journalctl -rb -1
journalctl 命令 能讓你讀取系統日誌。使用選項 -b -1 可以過濾最後一次啟動會話的日誌。使用選項 -r 時,日誌將按時間倒序顯示。
換句話說,journalctl -rb -1 命令將顯示最後一次關閉 Linux 系統之前的系統日誌。這裡就是你需要分析 Linux 系統長時間關機問題的地方。
如果沒有 journal 日誌,請確認你的發行版是否使用 systemd。
即使在一些使用 systemd 的 Linux 發行版上,journal 日誌也沒有被預設啟用。
請確認 /var/log/journal 是否存在。如果不存在,請建立它:
sudo mkdir /var/log/journal
你還應該檢查 /etc/systemd/journald.conf 檔案的內容,並確保 Storage 的值被設定為自動(auto)或持久(persistent)。
你是否在日誌中發現可疑的東西?是否有一個程式/服務拒絕停止?如果是,調查一下是否可以在沒有副作用的情況下刪除它,或者是否可以重新配置它。請不要在這裡盲目地去刪除東西。你應該對這個程式有所瞭解。
關機的預設等待時間通常設定為 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
不要忘記刪除 DefaultTimeoutStopSec 前的 # 號。儲存檔案並重啟系統。
這將幫助你減少 Linux 系統的關機延遲。
Linux 有一個名為看門狗的模組,用於監控某些服務是否在執行。它可以被配置為在系統因軟體錯誤而掛起時自動重啟系統。
在桌面系統上使用看門狗是不常見的,因為你可以手動關閉或重啟系統。它經常被用於遠端伺服器上。
首先檢檢視門狗是否在執行:
ps -af | grep watch*
如果你的系統正在執行看門狗,你可以在 systemd 配置檔案 /etc/systemd/system.conf 中將 ShutdownWatchdogSec 的值從 10 分鐘改為更低的值。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2725171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- win10 怎麼查開機時間_win10檢視開關機時間的方法Win10
- ntdll模組出錯調查和解決
- win10長時間執行卡如何解決_win10長時間沒關電腦變卡的解決方法Win10
- dataguard主備延遲多長時間的2種查詢方法
- linux-wdt 原理和任意超時時間設定的解決方法Linux
- 執行 brew install 命令長時間卡在 Updating Homebrew 的解決方法
- 由VIP漂移引發的演算法異常問題調查和解決演算法
- 關於Java的取時間方法的爭論Java
- 關於Oracle資料庫的時間查詢Oracle資料庫
- 關於日期及時間欄位的查詢
- linux Too Many Files 問題檢視和解決方法Linux
- win10如何設定自動關機時間 win10系統定時關機的方法Win10
- 關於$ is not defined的原因和解決辦法
- 開始資料治理時三個常見的陷阱和解決方法
- linux查詢某段時間修改的檔案的總大小Linux
- win10調時間找不到檔案怎麼辦_win10調整時間顯示找不到檔案的解決方法Win10
- 如何關閉win10時間軸_win10時間線關閉的方法Win10
- 龐大的2.3k補丁系列將縮短 Linux 核心構建時間和解決依賴地獄Linux
- 社交電商系統開發時的常見問題和解決方法
- Linux系統時間同步方法。Linux
- 檢視電腦的開關機時間
- win10如何修改時間日期格式 調整時間格式和日期格式的方法Win10
- C#操作時區轉換時遇到的一些問題和解決方法分享C#
- Gradle Resolve dependecies 很長時間的解決辦法Gradle
- App Annie:2020年Z世代手機使用情況調查 日本年輕人遊戲時間最長APP遊戲
- 時間都去哪兒了?中國時間利用調查研究報告
- 縮短 Linux 命令節省時間的四種方法Linux
- SELinux簡介和解決方法Linux
- win10如何定時關機 win10定時關機的方法Win10
- 國際勞工組織:長時間工作健康風險全球調查報告
- 關於wake on lan遠端喚醒主機的問題,長時間關機無法遠端喚醒
- BankMyCell:調查顯示千禧一代認為手機通話太耗時
- win10重啟很長時間後電腦經常卡死的解決方法Win10
- 【時間戳轉普通時間格式的方法】時間戳
- CentOS 7 "線纜被拔出"的原因和解決方法CentOS
- Redis常見的效能問題和解決方法UWRedis
- python學習遇到的困難和解決方法1Python
- win10副檔名太長怎麼辦_win10檔名太長無法刪除的解決方法Win10