APMD(8) | Linux Programmer's Manual | APMD(8) |
名前
apmd - Advanced Power Management (APM) デーモン書式
apmd [ -c check_seconds ] [ -P proxy_cmd ] [ -p percent_to_log ] [ -qVvW ] [ -w warn_percent ] [ -? ] [deprecated options]説明
apmd は APM を監視するデーモンで、OS のカーネルの APM BIOS ドライバーを利用して動作する。 apmd はドライバーからイベントの発生が通知された時にコマンド (通常はシェルスクリプト) を実行することができ、またシステムの電力状態が変化 (AC 電源供給のオン・オフなど) したときに syslogd(8) を使ってログを残すことができる。電池の残量がわずかになった時には、システムの全ユーザーにいろいろな方法で警告を通知することもできる。カーネルの APM ドライバーからサスペンドやスタンバイを行いたい旨の要求を受け取ると、 apmd は適切なコマンドを実行し、そのイベントをログに書き、データをディスクに sync(2) し、全てのデータがディスクに実際に書きこまれるように少しの間スリープし、その後 APM ドライバーに処理を続行するように通知する。しかし「クリティカル」なサスペンド (緊急シャットダウン) の場合には、途中の段階をすべて飛ばしてドライバーに処理の続行通知を送る。
このデーモンの主な利用法は proxy コマンドを使用して電力の節約をすることである。このコマンドのデフォルトの検索場所は /etc/apmd_proxy であり、起動の際には 1 個または 2 個の引数が付けられる。
- start
- デーモンの起動時に呼びだされる。通常、システム全体の電力管理設定を行う。例えば電池使用時/非使用時の IDE ハードディスクのスタンバイ時間などである。
- stop
- デーモンの停止時に呼びだされる。通常はデーモンの開始時に設定された電源の設定を元に戻す。
- suspend [ system | user ]
-
システムのサスペンド開始を APM ドライバーが通知した時に呼びだされる。二番目の引数は、サスペンドの開始が BIOS によるものか、ユーザーのアクション (ラップトップを閉じた時など) によるものかを示す。
- standby [ system | user ]
-
システムのスタンバイ開始を APM ドライバーが通知した時に呼びだされる。二番目の引数はスタンバイの開始が BIOS によるものかユーザーのアクション (
apm -s の実行など) によるものかを示している。
- resume [ suspend | standby | critical ]
-
システムの通常オペレーションへのレジュームを APM ドライバーが通知した時に呼びだされる。二番目の引数は、以前の状態が「サスペンド」モード(「クリティカル」なサスペンドの可能性もある) だったか「スタンバイ」モードだったかを示している。
- change power
- APM ドライバーの「電源状態の変化」イベントのうちの幾つかに対応する (特に AC 電源の挿抜など)。これが起きるとシステム全体の電力管理設定を変更する場合が多い。例えば電池しか使えない場合に IDE HDD を積極的にスタンバイモードに入れるようにするなど。
- change battery
- 少なくとも一つの (あるいは複数の) 電池の残量が "low"である、という BIOS の判断が APM ドライバーから通知された。ただし、少なくとも 10 分ぶんの電力は残っている。
- change capability
- システムの電力管理設定機能のどれかが変更された旨が報告された。何らかのセットアップユーティリティの操作やデバイスの追加・取り外しなどが考えられる。
このデーモンはいろいろなログメッセージを発行する。ほとんどは見ればわかるだろうが、電池の状態に関するメッセージには少々説明が必要かもしれない。ログの "Battery"または "Charge"メッセージには、続いて 4 つのフィールドが記述される。
1) 消費レート (パーセント/分)。負の場合は充電を示す。
2) 完全充電・完全消費状態からの経過時間 (hh:mm:ss)。この値は 100% または 0% になった状態からの経過時間を反映している場合にのみ意味がある。それ以外の場合には時間は括弧で括られ、最後に apmd の「重要な」状態変化 (デーモンの起動、AC 電源から電池駆動への移行など) が起きてからの経過時間を表す。
3) 完全に電池を消費してしまうまで (あるいは完全に充電されるまで) の予測時間。最後にレジューム状態から復帰して以降 (あるいは AC 電源が接続されて移行) と同じような利用状態が続くと仮定している。この時間は apmd 自身が計算している。
4) 括弧に挟まれた、充電率と電池の寿命。これは APM BIOS の予測値である (インテリジェントな電池自身からの、やや控えめな見積りであることが多い)。この情報は、このデーモンからのメッセージのほとんどに追加される。
このデーモンは APM BIOS 1.2 イベントをサポートしている。しかし複数の電池の取り扱いなど、より高度な機能はサポートしていない。また最近の PC ハードウェアにある ACPI サポートとの連携は、まだできない。
オプション
- -c seconds, --check seconds
- /dev/apm_bios デバイスを何秒間ブロックするかを制御する。通常デーモンは APM ドライバーがイベントを報告するまでブロックする。この数字を変えると、電池の充電速度・消費速度をより頻繁にチェックできる。
- -P proxy_cmd, --apmd_proxy proxy_cmd
- APM ドライバーのイベントが報告されたときに起動するコマンドを指定する。このスクリプトに付加される引数に関する情報は上述の説明を見よ。
- -p percent_change, --percentage percent_change
- (消費や充電によって) 利用可能な電池残量が percent_change づつ変わるごとに、情報をログに送る。デフォルトは 5。この機能を無効にしたい場合は 100 より大きい値を指定する。
- -V, --version
- デーモンのバージョンを表示して終了する。
- -v, --verbose
- 詳細出力モードを有効にする。 APM ドライバーから報告される全てのイベントがログに送られる。
- -W, --wall
- 電池の状態が ( -w オプションや APM BIOS によって定められた) "low"になったとき、 syslog(2) を用いてログをとるだけでなく、 wall(1) を用いて全てのユーザーに警告を発する。これは syslogd(8) の設定で、 ALERT メッセージがユーザに送られるようになっていない場合に非常に便利である。両方が用いられると、危険な状態になったときによりたくさんの警告が発せられる。
- -w warn_percent, --warn warn_percent
- 電池が充電状態になく、かつ残量が warn_percent 以下になったときに ALERT レベルの警告を syslog(2) に送る。 -W または --wall フラグが与えられていると、デーモンは wall(1) も使ってユーザーにいまそこにある危機を警告する。警告はパーセンテージが変わるごとに発せられる。デフォルトは 10。この機能を無効にするには負の値を指定する。
- -q, --quiet
- -W オプションや -w オプションから生じる警告メッセージを出さなくする。 (多くのマシンでは、 APM BIOS は電力を使い切りそうになると警告音を発するので、それ以上の警告は必要ない。)
- -?, --help
- 利用法を表示して終了する。
これから書くソフトは、 proxy スクリプトだけを使うようにすべきである。以下のオプションは今後は使うべきでない (これらのほとんどは正式リリースには存在しない)。指定されると、各イベントから起動されるどの proxy コマンドよりも優先される。
- -a ac_online_cmd, --ac_online ac_online_cmd
- AC 電源が利用できるようになったとき (ただしデーモンが最初に起動されたときは除く) に実行すべきコマンドを指定する。
- -b ac_offline_cmd, --ac_offline ac_offline_cmd
- マシンが電池駆動になったとき (ただしデーモンが最初に起動されたときは除く) に実行すべきコマンドを指定する。
- -l low_battery_cmd, --low_battery low_battery_cmd
- 電池の残量が "low"であると APM BIOS が判断した場合に実行すべきコマンドを指定する。
- -s pre_suspend_cmd, --pre_suspend pre_suspend_cmd
- ドライバ経由でサスペンドする前に実行すべきコマンドを指定する。
- -r post_resume_cmd, --post_resume post_resume_cmd
- ドライバ経由で復帰した後に実行すべきコマンドを指定する。
- -u, --utc
- (このオプションは現在は完全に無視される。) BIOS クロックが UTC (GMT) にセットされている。したがってサスペンドモードやレジュームモードから復帰したり BIOS の update time イベントの際には、デーモンは clock や hwclock プログラムに -u オプションを渡さなければならない。
バグ
電力状態が変わったあと、最初に出される報告は不正確かもしれない。なぜなら 1% 以下の変化は 1% に丸められるからである。例えば、ある程度マシンを使って 50.9% の電池が残っているとすると、これは 50% と報告される。マシンの充電が始まると、残量が 51% になるまでの変化は 0.1% だけである。したがって充電速度は劇的に大きな値になってしまう。他のアプリケーションに、システムの電源管理方針決定に参画させるには、より一般的なフックが必要である。
現在のところ、複数の電池は 1 つの大きな電池としてしか取り扱われない。
ファイル
/dev/apm_bios著者
このプログラムは Rik Faith (faith@cs.unc.edu) によって書かれ、 GNU 一般公共使用許諾のもとで自由に再配布できる。このプログラムは「完全に無保証」である。現在の管理者は Avery Pennarun (apenwarr@worldvisions.ca) である。関連項目
apm(1), xapm(1), cardctl(8), hdparm(8), syslogd(8)10 Jun 1999 |