停電検知

停電検知

UPSなしでラップトップ/デスクトップの停電を検出できますか?明らかに、UPSを持たないコンピュータは、少なくともバッテリープラグを抜いたり取り外した直後に終了します。しかし、コンデンサ/インダクタが完全に枯渇して何かをする機会が短くなる前に、コアが電力損失に気付く可能性があると思います。

適切に設定されたUPSがある場合は、システムがシャットダウンできるようにUPSがpowerd送信されることを知っています。 UPSが接続されていない場合に興味があるため、明らかに最大1つしか存在しません。SIGPWRinit非常に閉じるウィンドウが短い。私が本当に望むのは、停電について学ぶために、ログファイルに単一のタイムスタンプ(または失敗した文字列)を書き込むことです。

カーネルがすべてのプロセスにそれを転送すると思うので、これが実際に役立つかどうか疑問に思うかもしれません。SIGPWRこれが私の心の中に最初に浮かぶのです。カーネルを更新するためにいくつかの制御ラインまたはファイルをポーリングできますか?それとも、ちょっとめちゃくちゃなのかもしれませんが、正直言って、まさに私が予想した通りでした。

答え1

平均100Wデスクトップコンピュータの場合、外部680uFx400Vコンデンサのバッテリーでも、使用時間が約0.5秒と非常に短いです。内部PSUキャップを使用する場合は少なくなります。あなたが本当に達成したいものは何ですか?ログファイルにタイムスタンプを書き込むことができますが、まだsync()ループを実行するか、手動でsync()を呼び出す必要があります。

停電を検出する必要がある場合ほとんど信じられないその後、起動時にフラグファイルをタッチし、通常の終了時に削除することをお勧めします。このファイルがあると、システムが完全にシャットダウンされていないことがわかります。ただし、他のエラー、主にカーネルパニックなどのソフトウェアエラーからユーザーを保護することはできません。

答え2

一部のマシンにはシャットダウン用に設計された短期バッテリーが付属しています(少なくともAT&T 3Bシリーズはそうです。IIRCは一部のIBM RS / 6000-pSeriesも同様です)。これらのマシンでは、SIGPWR電源が切れて実際に使用可能になると信号が送信されます。最近はそれほど多くはありません。

関連情報