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 にお知らせください。

"I liken starting one's computing career with Unix, say as an undergraduate, to being born in East Africa. It is intolerably hot, your body is covered with lice and flies, you are malnourished and you suffer from numerous curable diseases. But, as far as young East Africans can tell, this is simply the natural condition and they live within it. By the time they find out differently, it is too late. They already think that the writing of shell scripts is a natural act."
— Ken Pier, Xerox PARC