このサーバ (i.loveruby.net) はオムロン POWLI BX50XF (現在は型番が BX50XFV になったらしい) という UPS でバックアップしています。 これには最初から Linux 用の制御ソフトがついていて停電になると 勝手にシャットダウンしたりできるんですが、Debian だとこのソフト がちゃんと動きません。どうやら libstdc++ のバージョンが合って ないような感じです。それに動いたとしてもいきなり X Window 用の コンソールを立ちあげようとしたりするあたりなかなかウザい奴です。
そこで、汎用の UPS 監視ソフト genpower というのを使うことにしま した。genpower は標準では POWLI には対応していないんですが、 小さなパッチをあてることで簡単に対応可能です。……と言っても 自分で書いたわけではなくて、 Winfield さんのページ からパッチや手順その他ぜんぶ頂きました。以下はその単なるまとめです。
それと、winfield さんのページにあったパッチは BX35/50XF(V) 用 なんですが、似たやつで BX50LF というのもあります。こっちは 熊谷さんのページに手順がありました。ケーブル自作してますけど……。
mkdir /usr/src/genpower cd /usr/src/genpower apt-get source genpower cd genpower-1.0.1 patch < genpowerd.h.diff debchange -a 'Added OMRON POWLI BX35/50XF config entry.' su ./debian/rules build dpkg-buildpackage -us -uc
ここまでで /usr/src/genpower
に新しい .deb パッケージが
できるので、それを dpkg -i でインストールする。そして、genpower を
勝手にアップデートされないように dselect で genpower パッケージを
hold (=) しておく。あとはコンフィグファイルの設定。量は少ない。
# /etc/init.d/genpower の先頭付近のパラメータを以下のように調整 enabled=1 upsport=/dev/ups upstype=omron-powli
omron-powli はパッチで追加しているエントリの最初の要素。
/dev/ups
は最初から存在するわけではないので
/dev/ttyS0
(COM1) あたりへシンボリックリンクを
張っておく。/etc/init.d/genpower
のエントリの
ほうを変えてもいいけど、たぶんリンクを張るほうがなにかといい。
最後に /etc/init.d/powerfail
のパラメータを
調整しておしまい。コメント見ればわかるけど、停電になってから
何分でシャットダウンするかとか、そういう値を設定できる。