Apcupsd smart sleep (delayed wakeup) patch [日本語情報]
注意
このパッチは「クイックハック」に類するもので、十分にテストされていません。ですからこのパッチを使う際には十分留意してください。また、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 ビルド環境 ( もちろんビルド時のみ必要です )
ダウンロード
- Smart sleep patch 01 ( apcupsd-3.14.8 向けです )
- このサイトから ダウンロード
- 本家 Apcupsd-users ML アーカイブ から ダウンロード
このパッチについて
このパッチは 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 にこのパッチを ポスト しました。
参考資料
- http://www.apcupsd.com/ - a daemon for controlling APC UPSes
- http://homepage1.nifty.com/Que/plamo/apc-ups/manual/upsbible.html - APC's smart protocol
パッチ著者
Hiroshi Chonan - chonan at pid0 dot org
ライセンス
このパッチはオリジナルの apcupsd のライセンスポリシーに準じることとします。ですので GPL version 2 が適用ライセンスとなります。