Apcupsd smart sleep (delayed wakeup) patch [日本語情報]

Information in English

英語での情報はこちら

注意

このパッチは「クイックハック」に類するもので、十分にテストされていません。ですからこのパッチを使う際には十分留意してください。また、USBシグナリングについては現在サポートされていません。

ニュース

  • 2011/03/28 - 本家 Apcupsd users ML にこのパッチを ポスト しました。

ビルドや使用するために必要なもの

  • Smart UPS ( シリアルインターフェイスをもち、'@nnn' コマンドを受け付けることが必要です )
  • Smart Signaling ケーブル ( APC Part# 940-0024C, # 940-0024D, 940-1524(black cable) or Interface Kit C (AP9824LJ) )
  • Apcupsd が動作するOS環境
  • Apcupsd ビルド環境 ( もちろんビルド時のみ必要です )

ダウンロード

このパッチについて

このパッチは apcupsd に新しい sleep ( -s / --sleep ) オプションを追加するものです。 直ちにハイバネーションモードに以降するkillpower ( -k / --killpower ) の代わりに使うことで、UPSに '@nnn' コマンドを発行します。

# ./apcupsd --help

usage: apcupsd [options]

Options are as follows:

-b, don't go into background

-d, --debug <level> set debug level (>0)

-f, --config-file <file> load specified config file

-k, --killpower, --hibernate put UPS into hibernation mode [*]

-o, --power-off turn off UPS completely [*]

-P, --pid-file specify name of PID file

-p, --kill-on-powerfail hibernate UPS on powerfail

-R, put SmartUPS into dumb mode

-s, --sleep <minutes> put UPS into hibernation mode and

awake after <minutes> minutes[*]

-t, --term-on-powerfail terminate when battery power fails

-T send debug to ./apcupsd.trace

-V, --version display version info

-h, --help display this help

[*] Only one parameter of this kind and apcupsd must not already be running.

Copyright (C) 2004-2009 Adam Kropelin

Copyright (C) 1999-2005 Kern Sibbald

Copyright (C) 1996-1999 Andre Hedrick

Copyright (C) 1999-2001 Riccardo Facchetti

apcupsd is free software and comes with ABSOLUTELY NO WARRANTY

under the terms of the GNU General Public License

Report bugs to apcupsd Support Center:

apcupsd-users@lists.sourceforge.net

'@nnn' コマンドは「6分を単位として nnn 待機した後に再び起動する」 コマンドで、 sleep オプションの引数に対して実際には指定された分数に対して6分単位で切り上げてコマンドを発行します。実際の引数とコマンドの対応は下表の通りです。

通常の運用では、rc0 といった shutdown の最終局面で実行されるスクリプトの最後に以下のような記述を行い、指定した時間だけ UPS を sleep させるような運用を行うことを想定しています。

if [ -f /path/to/sleep_minutes -a -x /path/to/apcupsd ] ; then
        SLEEP_MINUTES=`cat /path/to/sleep_minutes`
        echo
        echo "APCUPSD make UPS asleep ${SLEEP_MINUTES} minutes..."
        echo
        /path/to/apcupsd --sleep ${SLEEP_MINUTES}
        rm -f /path/to/sleep_minutes
fi

インストール

  • オリジナルの apcupsd ソースアーカイブを以下のように展開し
$ gzip -dc apcupsd-3.18.tar.gz | tar xf -
  • パッチの適用を行います
$ cd apc-upsd-3.18 ; gzip -dc /path/to/apcupsd-3.14.18-smsleep_01.patch.gz | patch -p 1 
  • あとは通常と同じようにコンパイル・インストールします。

configure , make , make install etc...

変更履歴

  • 2011/03/28 - 本家 Apcupsd users ML にこのパッチを ポスト しました。

参考資料

パッチ著者

Hiroshi Chonan - chonan at pid0 dot org

ライセンス

このパッチはオリジナルの apcupsd のライセンスポリシーに準じることとします。ですので GPL version 2 が適用ライセンスとなります。