APC Smart-UPS 700JをFreeBSDで使ってみました。


http://www.ysyslab.co.jp/~kondo/upsd-2.0-100v.tar.gz

を取ってきて

tar zxvf upsd-2.0-100v.tar.gz
cd upsd-2.0-100v
make
su -
make install
でインストールはおしまい。

/etc/upsd
/etc/upsd.conf

がインストールされる。upsd.confをいじると挙動が変わりますが
特別いじらないでこのまま利用します。

ケーブルは付属の黒いやつ(940-0024C)をそのまま使います。

/etc/upsd

とするとupsdが動き出しますので、テストしましょう。

おもむろにUPSの電源ケーブルをコンセントから抜くとコンソールに

Message from syslogd@dns at Tue Jul 25 21:19:22 2000 ...
dns upsd[43068]: *** ALERT! Source power line failed, logout NOW! ***

とお知らせが来ればちゃんと動いています。コンセントに再度プラグ
をさせば

Message from syslogd@dns at Tue Jul 25 21:19:22 2000 ...
dns upsd[43068]: Source power line restored, you may continue your work.

と「電気が復活したよ」と知らせてくれます。

ここまで動けば

/usr/local/etc/rc.d/upsd.sh

#!/bin/sh

case "$1" in

start)
if [ -x /etc/upsd ]; then
/etc/upsd && echo -n ' upsd'
fi
;;

stop)
# Stop daemons.
echo "Shutting down upsd."
PID=`/bin/ps -aux | grep upsd | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
;;
*)
echo "$0 start | stop"
;;

esac
exit 0

のように書いておくとboot時にupsdが動き出します。

ホントの停電になったときはどういう挙動を示すかと言うと・・・

電源が切れたとsyslogdがお知らせ。
電源容量がある一定以下になるとshutdown処理
その後ホントに電源断
電源が復旧したら電源容量がある一定以上になるまで充電。
十分マシンをドライブできるだけ充電されたら電源を供給開始
めでたしめでたし
となるわけです。

ここで注意・・・ATマザーの計算機は電源スイッチ=ハードウェアスイッチ
なので問題なしなのですが、ATXマザーはソフトウェアスイッチなので
マザーのBIOS設定
AC PWR Loss Restart を Enableにしておかないと、電源が復旧して
UPSがちゃんと働いても再起動をしません。

【おまけ】

APC SmartUPS 1400でもまったく同じに利用できました。が・ShareUPS
UPS Interface Expander(一台のUPSに複数のRS232Cケーブルをつなげ
て複数台の計算機を制御するためのもの)のBasic Ports Shutdownはどう
しても使えませんでした。

あとは /etc/upsd.conf中にコメントアウトしてあるように rsh(ssh)でも使って
リモートマシンへshutdownを送って複数台の計算機を安全にshutdown -h now
すれば良いでしょう。