tail head cat sleep
QR code linking to this page

manページ  — APMD

名称

apmd – Advanced Power Management 監視デーモン

内容

書式


apmd [-d] [-f -file] [-s] [-v]

解説

apmd ユーティリティは、指定した Advanced Power Management ( APM) イベントを監視し、 いずれかのイベントが発生した場合、 対応するコマンドシーケンスを実行します。 設定ファイルで指定されたイベントのみが apmd へ通知され、それ以外のイベントは無視されます。 APM BIOS によって発行された イベントに対して、 apmd は設定ファイルで指定されたコマンドシーケンスを実行します。 apmd をサスペンド/スタンバイを監視するようにして起動すると、 カーネルはそれらの要求イベントに対する 処理を行いません。 そのためそれらのイベント発生時に 処理をさせたい場合は、適切なコマンドまたは組み込み関数を 明示的に設定ファイルに指定する必要があります。

apmd ユーティリティは以下の実行時オプションを理解します。
-d
  デバッグモードで起動します。 デーモンモードではなくフォアグラウンドで動作します。
-f file
  デフォルトの設定ファイル /etc/apmd.conf の代りに使用する、別の設定ファイル file を指定します。
-s
  電源状態の変更が検出されたが (AC_POWER_STATE) ラップトップの BIOS がそれを報告しないときに、 apmd に POWERSTATECHANGE イベントをシミュレートさせます。 これにより、電源コードを抜いたときに LCD バックライトを暗くする といったことが可能になります。
-v
  冗長モードで動作します。

apmd は起動時に設定ファイル (デフォルトは /etc/apmd.conf) を読み込み、 監視すべきイベントを APM デバイスドライバへ通知します。 終了時には APM デバイスドライバはイベントの監視を自動的に解除します。

apmd プロセスがシグナル SIGHUP を受信すると、設定ファイルを読み込み直して、 設定の変更内容を APM デバイスドライバに通知します。

apmd ユーティリティは、デバイスファイル /dev/apmctl を経由して、イベントの受け取りや APM システム制御用の ioctl(2) 要求を発行します。 このデバイスファイルは排他制御されてオープンされるため、 apmd プロセスは同時に 1 つのみ起動可能です。

apmd が APM イベントを受け取ると、設定ファイルで指定された イベントに対応するコマンドリストを実行するために 子プロセスを生成し、再び APM イベントの待ち状態になります。 生成された子プロセスは、 指定されたコマンドを 1 つずつ列挙された順番に実行します。

apmd が SUSPEND/STANDBY 要求に対するコマンドリストを処理している間、 カーネル内の APM デバイスドライバは、APM BIOS に対して 毎秒 1 回以上通知を発行し続けます。 これによって BIOS は、コマンド処理中であり要求が まだ完結していないことを認識します。

apmd ユーティリティはファイル /var/run/apmd.pid を作成し、プロセス ID を記録します。これは apmd を kill や、設定ファイルを読み込ませるために使えます。

設定ファイル

apmd の設定ファイルの構造は非常にシンプルです。 例えば次のようになります。

apm_event SUSPENDREQ {
        exec "sync && sync && sync";
        exec "sleep 1";
        exec "zzz";
}

この例では、APM イベント ‘SUSPENDREQ’ (ディスプレイを閉じた時などに発生します) を apmd が受け取ると、 ‘sync’ コマンドを 3 回実行し、少し待ったあとに zzz) を実行してシステムをサスペンドさせます。

使用例

設定ファイルのサンプルには、以下のものが含まれています。
apm_event SUSPENDREQ {
        exec "/etc/rc.suspend apm suspend";
}

apm_event USERSUSPENDREQ { exec "sync && sync && sync"; exec "sleep 1"; exec "apm -z"; }

apm_event NORMRESUME { exec "/etc/rc.resume apm suspend"; }

apm_event STANDBYRESUME { exec "/etc/rc.resume apm standby"; }

# resume event configuration for serial mouse users by # reinitializing a moused(8) connected to a serial port. # #apm_event NORMRESUME { # exec "kill -HUP `cat /var/run/moused.pid`"; #}

# suspend request event configuration for ATA HDD users: # execute standby instead of suspend. # #apm_event SUSPENDREQ { # reject; # exec "sync && sync && sync"; # exec "sleep 1"; # exec "apm -Z"; #}

関連ファイル

/etc/apmd.conf
/dev/apmctl
/var/run/apmd.pid
 

関連項目

apm(4), apm(8)

作者

Mitsuru IWASAKI <iwasaki@FreeBSD.org> KOIE Hidetaka <koie@suri.co.jp>

また、 Warner Losh <imp@FreeBSD.org>, Hiroshi Yamashita <bluemoon@msj.biglobe.ne.jp>, Yoshihiko SARUMARU <mistral@imasy.or.jp>, Norihiro Kumagai <kuma@nk.rim.or.jp>, NAKAGAWA Yoshihisa <nakagawa@jp.FreeBSD.org>, Nick Hilliard <nick@foobar.org> による貢献がありました。

歴史

apmd ユーティリティは FreeBSD 3.3 から登場しました。

APMD (8) June 28, 1999

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

On two occasions I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
— Charles Babbage