お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2012-10-18 11:20:31

powerfail
メンバ
登録日: 2012-10-18

genpowerで停電時に自動シャットダウンするには?

手元で動いているubuntu 10.04.4 LTS(amd64デスクトップ版)を使って実験しています。
(適当な機材がなく、ubuntuサーバ版では試していません)
apt-getでgenpowerをインストールしました。UPSはGE3115で、付属ケーブルによってシリアルポートとつながっています。
/etc/genpowerd.confを以下のように変更しました。/etc/init.d/powerfailはまだ変更していません。

* /etc/genpowerd.conf
ENABLED=true
UPSPORT=/dev/ttyS0
UPSSTAT=/var/run/upsstat
UPSTYPE=ge3115
(中略)
# GSEE GE3115
ge3115            RTS    /DTR  5 /CTS     CAR    ---

ここでリブートするとgenpowerdが動いています。
% ps aux | grep genpower
root       889  0.0  0.0   4012   396 ?        Ss   08:52   0:00 /sbin/genpowerd -c /etc/genpowerd.conf
そしてUPSと正常に通信できています。
% cat /var/run/upsstat
OK
試しに停電状態を作り出すときちんと検知できています。
% cat /var/run/upsstat
FAIL

しかし問題は、停電を検知してもpowerfailスクリプトが呼び出されません。ls -luで確認すると全く読まれていません。
昔 /etc/inittabが存在した時代にはinittab内にpowerfailスクリプトのパスを書くことでinitから呼び出されたのですが、
inittabがなくなった今はどこに何を書けば同様のことができるのでしょうか?
よろしくお願いします。

オフライン

 

#2 2012-10-21 19:07:02

favicon.ico
メンバ
登録日: 2010-09-06

Re: genpowerで停電時に自動シャットダウンするには?

こんな感じかな?
/etc/rc.powerfail

コード:

#!/bin/sh
powerfail="/etc/init.d/powerfail"
case "$1" in
    FAIL)
        $powerfail start
        ;;
    SCRAM)
        $powerfail now
        ;;
    OK)
        $powerfail stop
        ;;
esac
exit 0

実物が無いので自信が無いw

オフライン

 

#3 2012-10-23 10:27:38

powerfail
メンバ
登録日: 2012-10-18

Re: genpowerで停電時に自動シャットダウンするには?

レスありがとうございます。早速実験してみましたが、症状に変化はありませんでした。

停電状態を作っても /etc/rc.powerfail は全く読まれていません。(ls -luで確認)

モードはこれで良いはずです。
# ls -l /etc/rc.powerfail
-rwxr-xr-x 1 root root 203 2012-10-21 22:20 /etc/rc.powerfail

genpowerdが正常に停電を検知していることは、syslogでも確認できます。
Oct 23 09:43:52 xxxxx /sbin/genpowerd: Line power has failed
Oct 23 09:44:19 xxxxx /sbin/genpowerd: Line power restored

思うに、かつて/etc/inittabに設定した
pf::powerwait:/etc/init.d/powerfail start
pr::powerokwait:/etc/init.d/powerfail stop
のような内容をどこか別の場所に設定しなければならないのではないでしょうか。

よろしくお願いします。

オフライン

 

#4 2012-10-23 13:49:08

favicon.ico
メンバ
登録日: 2010-09-06

Re: genpowerで停電時に自動シャットダウンするには?

ごめんなさい間違えました
genpowerd の動作は 1. /var/run/upsstat にステータスを書く、2. kill -s SIGPWR 1
なので Upstart 対応案を作ってみました

/etc/init/power-status-changed.conf

コード:

description "power status changed"

start on power-status-changed

script
    POWERSTATUS=$(cat /var/run/upsstat)
    POWERFAILRC="/etc/init.d/powerfail"

    case "$POWERSTATUS" in
        FAIL)
            $POWERFAILRC start
            ;;
        SCRAM)
            $POWERFAILRC now
            ;;
        OK)
            $POWERFAILRC stop
            ;;
    esac
end script

オフライン

 

#5 2012-10-25 21:41:59

powerfail
メンバ
登録日: 2012-10-18

Re: genpowerで停電時に自動シャットダウンするには?

 ありがとうございます。大成功です。

 initを使うUPSデーモンは珍しいらしく、genpowerとupstartを組み合わせるための情報を見付けることができなかったので、
大変助かりました。

 後の人のためにgenpowerパッケージにpower-status-changed.confを追加したら良いと思いますが、ubuntu的にはどういう
手続きで追加できるでしょうか。
 ただ、genpowerパッケージにpower-status-changed.confを追加した場合、新規にgenpowerをインストールする人は良いの
ですが、既に使っている人がアップグレードした場合に問題が生じないかという点が心配です。

オフライン

 

Board footer

Powered by FluxBB