vine-users ML アーカイブ



[vine-users:063818] apmd による停電時自動 shutdown 方法

  • From: Ichro Sato <puresnow@xxxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:063818] apmd による停電時自動 shutdown 方法
  • Date: Fri, 09 Jan 2004 08:24:53 +0900
こんにちは、佐藤市郎と申します。
中古のノートPC(FMV-5100NL/W:Pentium100MHz,Mem48MB,HDD810MB)をWEBサーバと
して使いはじめたところです。
せっかくバッテリーが付いてるので、apmdを使って停電時に自動シャットダウン
させようと試行錯誤しているのですが、うまくいきません。

まず、停電になってもある程度バッテリーで運用し、バッテリーがLowPowerにな
ったらshutdownを実行するようなスクリプトにしてみました。
(/etc/sysconfig/apm-scripts/apmcontinue)

#!/bin/sh
case "$1" in
  change)
    if [ "$2" = "battery" ]; then
      /sbin/shutdown -h now
    fi
    ;;
esac

しかしこのノートではLowPowerを検出できないのか、change batteryイベントが
通知されず、シャットダウンできませんでした。
次に電源がAC、バッテリー相互に変わるchange powerは検出されるので、
「バッテリーに変わってから15分後にシャットダウン、ただしACに戻ったらシャ
ットダウンを取り消す」というスクリプトにしてみました。

#!/bin/sh
case "$1" in
  change)
    if [ "$2" = "power" ]; then
      if [ -f /var/run/shutdown.pid ]; then
        /sbin/shutdown -c
      else
	/sbin/shutdown -h +15
      fi
    fi
    ;;
esac

これで電源を抜くとshutdownが実行されるのですが、再びコンセントを差し込ん
でもshutdownはキャンセルされませんでした。
どうやらshutdownを実行すると、その後apmdがうまく働かず、イベントが保留さ
れるような状態になってしまい、スクリプトが実行されないようです。
ここで手動でshutdown -cを実行すると、保留されたchange powerが有効になり、
/var/run/shutdown.pidが無い -> またshutdownを実行、となります。

これ以上、よい方法が思い浮かばず、どうにも手詰まり状態です。
どうかアドバイスをお願いします。
---
Ichro Sato <puresnow@xxxxxxxxxxxxxxxxxxxx>