Linux で停電時に UPS でコンピューターを自動的にシャットダウンする

Linux で停電時に UPS でコンピューターを自動的にシャットダウンする

Google で役に立つ情報が何も見つからないのは不思議です。

私は安価な UPS を使用していますが、これは実際に電気の問題が発生した場合でもしばらくコンピューターに電力を供給し続けます (東南アジア全域で電気の問題は非常に一般的です)。

しかし、たとえば、マシンの電源を入れたまま、お店で何かを買うために家を出たらどうなるでしょうか? あるいは、ゲームやその他の大きなものをダウンロードしたいのに、夜間にマシンの電源を入れたままにしておくとしたら?

電気がない場合でも、コンピューターを「ソフトに」オフにする方法があるはずです。

私は Ubuntu を使用していますが、「shutdown now」を実行するだけで十分です。

私の要求は非常に一般的なものだと思うので、不可能だなんて信じられません。

どうすればこれを実現できるでしょうか?

答え1

ほとんどの UPS (おそらく最も安価なものを除くすべて) にはこの機能が付属しています。この機能がなければ、不在時に UPS のメリットはほとんどありません。お使いの UPS にこの機能がない場合は、無人時にコンピューターの電源を入れたままにしない (休止状態以外のモード) のが安全な方法です。

データの接続

UPS が機能している場合、コンピュータは商用電源が切れたことを認識しません。コンピュータがシャットダウンする必要があることを認識し、正常にシャットダウンできるようにする唯一の方法は、UPS が状況を伝達できることです。この機能には、UPS とコンピュータ間のデータ接続が必要です。

コンピュータ側では、UPS が 1 台のパソコン用である場合、通常は USB 接続です。UPS 自体のポートはさまざまです。多くの場合、電話ジャックのように見えます (電話回線のサージ保護用の一部のモデルでは実際の電話ジャックと混同しないでください)。UPS には、データ接続に必要なケーブルが付属しています。

より高度なモデルでは、UPS はこの接続を使用して、バッテリーの状態などのステータス情報も通信します。

ソフトウェア

この情報を利用するには、コンピュータにソフトウェアが必要です。UPS には通常、Windows 用のソフトウェアがバンドルされています。Linux では、追加の手順が 1 つまたは 2 つ必要になることがよくあります。いくつかのディストリビューションには、汎用プログラムまたは特定の UPS メーカーのプログラムがバンドルされています (そのメーカーの製品でのみ機能する可能性があります)。

お使いのディストリビューションに Linux 版がない場合、UPS メーカーの中には、自社の Web サイトからソフトウェアの Linux 版をダウンロードできるところもあります。したがって、特定のブランドの UPS が必要な場合は、まずそこをチェックしてください。Linux の弱点の 1 つは、Windows に比べてドライバ ソフトウェアの入手が制限され、実装が「実践的」であることです。ハードウェアの購入決定には、Linux サポートの有無が影響する場合もあります。

特定のブランドの UPS が必要で、その UPS が Linux ソフトウェアを提供していない場合、最も一般的なオプションは次のとおりです。

  • apcupsd

    APC は、ある意味特別なケースです。同社は、幅広いモデルを揃えた最大手の UPS メーカーの 1 つです。同社は、自社のモデルを Linux でサポートし、認定することに投資してきました。

    彼らの自由なapcupsdソフトウェアはいくつかのディストリビューションにバンドルされており、他のディストリビューションのリポジトリでも一般的に利用可能で、パッケージ マネージャーから簡単に選択してインストールできます。私は使用したことはありませんが、一般的に高く評価されており、現在の事実上の標準となっているようです。

    1 つの制限は、APC 製品のみをサポートしていることです。ただし、Linux ソフトウェアが搭載されていないブランドを購入する強い理由がない場合は、APC の製品から選択するのが簡単なオプションです。

  • ナット

    Linuxソフトウェアを提供していないメーカーのUPSをどうしても購入する必要がある場合は、おそらくネットワーク UPS ツール (NUT)これは、電源関連のほぼすべての制御、監視、管理を処理する無料のアプリケーションです。1 台のコンピューターの UPS にはおそらく過剰であり、いくつかの構成が必要です (初心者には最適なソリューションではありません)。これは通常、ほとんどのディストリビューションのリポジトリで入手できます。

    NUT のような汎用ソフトウェアしかソフトウェア オプションがない UPS の購入を検討している場合は、まずマニュアルを読んで、設定作業が自分にできるかどうかを確認することをお勧めします。

  • ウィンパワー

    Linux(および他のOS)で動作するもう一つの汎用プログラムは、ウィンパワーマニュアルをざっと読んだ以外、このプログラムについて個人的に詳しいことはありません。SU で見つけたのは、UPS を検出できなかった人々からの 2 つの未回答の質問だけだったので、あまり広く使用されていないのではないかと思います (NUT に関する質問もいくつかありますが、ほとんどは利用可能なデータの使用に関するものです)。

    NUT と同様に、WinPower も詳細な設定手順が必要であり、その情報については UPS の技術マニュアルが必要になります。NUT と同様に、WinPower を利用する予定の場合は、Linux ソフトウェアが搭載されていない UPS を購入する前に、まずマニュアルを読んで必要な技術情報にアクセスできることを確認し、設定作業が自分にできるかどうか確認することをお勧めします。

答え2

私は最近購入した Cyber​​Power CP1000AVRLCDa で apcups を使用していますが、Linux Mint マシンで非常にうまく動作しています。

同じ UPS に複数のコンピュータが接続されていて、1 台がマスターとして USB ケーブル経由で UPS に接続し、他のコンピュータがそのマスター上の apcupsd と通信し、マスターより先にシャットダウンするように構成する状況でも設定できます。

ただし、質問に直接答えると、停電を検出する方法が必要です。UPS が電力を供給しない場合 (何らかの「リレー」(スイッチ) 経由、またはイーサネット、シリアル、または USB 経由)、シャットダウンできるように電力損失を検出する別の方法が必要になります。

電源喪失を検出する愚かな方法としては、UPS に接続されていない別のコンピュータを用意し、そのコンピュータの唯一の目的は、電源喪失時に「保護された」コンピュータとの通信を停止することであり、保護されたコンピュータは電源が落ちたことを認識してシャットダウンします。(意味が通じますか?)

もっと良い方法は、室内の AC 電源の有無に応じて変化する PC への何らかの入力です。電源が切れると停止するだけの別のコンピュータのほかに、電源があるときはパラレル ポートのビットをある値に設定し、電源が切れると反対の値に設定するデバイスをセットアップすることもできます。これを行うには、主電源で動作する LED 付きのボックスから、フォトダイオードなどを点灯させてパラレル ポートのビットを適切な方法でプルする方法、主電源で動作し、空いている接点を使用してパラレル ポートのビットを適切にプルするラッチ リレーまで、さまざまな方法が考えられます。コンピュータの電源を入れる前に、まずリレーをラッチして、コンピュータが電源が正常であると認識できるようにします。次に、電源が切れるとリレーがドロップ アウトしてオフのままになり、コンピュータをシャットダウンするように指示します。

一方、電源が数秒間ランダムに跳ね上がり、その後回復する可能性があり、1 回の停電で PC が停止しないようにしたい場合は、ラッチ リレーを使用せず、主電源に接続された「通常の」リレーを使用して、電源状態をリアルタイムで表示します。PC でそのラインを監視し、一定時間「電源なし」になった場合はシャットダウンします。

注: 上記は、コンピューターの電源喪失を検出してシャットダウンする方法についての、やや短い一連のアイデアです。ここでは、ある程度の電子工学の知識があることを前提としています... また、電源に直接接続されているものには、細心の注意を払ってください。

関連情報