Power-Management
檢測功率損耗
是否可以在沒有 UPS 的情況下檢測筆記型電腦/台式機的斷電情況?顯然,沒有 UPS 的電腦在拔下/拔掉電池後至少會立即關閉。但是,我認為核心可能會在電容器/電感器完全耗盡之前註意到功率損失並且有很短的機會做某事。
我知道如果我有一個正確配置的 UPS,
powerd
將發送SIGPWR
到init
這樣一個有組織的關機可以發生。我對我沒有連接 UPS 的情況很感興趣,所以顯然最多只能有一個非常短的關閉視窗。我真正想要的只是將一個時間戳(或失敗的任何字元串)寫入日誌文件,這樣我就可以知道電源故障。我懷疑這
SIGPWR
在這種情況下是否真的有用,因為我懷疑核心會將它發送到每個程序,這只是我想到的第一件事。也許會有一些我可以輪詢核心會更新的控制線或文件?或者也許我只是搞砸了,老實說,這是我所期望的。
即使是外部 680uFx400V 電容器電池的時間視窗對於平均 100W 的台式 PC 來說也非常低 - 僅半秒左右。使用內部 PSU 上限,它甚至更少。你真正想要達到什麼目的?即使您能夠將時間戳寫入日誌文件,您仍然需要進行 sync() 循環或進行手動 sync() 呼叫,並且如果您不走運並且您的機器忙於轉儲其他排隊的磁碟緩衝區 -你出去了。
如果您需要幾乎可靠地檢測電源故障,那麼我建議您在啟動時觸摸一個標誌文件,在正常關機時將其刪除。這個文件的存在會告訴你機器沒有完全關閉(但它不會讓你免於其他故障,主要是軟體故障,如核心恐慌)。