スポンサーリンク

APMD(8) FreeBSD/i386 システム管理者マニュアル APMD(8)

名称

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 −z) を実行してシステムをサスペンドさせます。

 apm_event キーワード

‘apm_event’ はキーワードであり、イベントごとの設定の開始を指示 します。

 APM イベント

複数のイベントに対して同じ処理を実行したい場合は、それらのイベ ント名をコンマで区切って指定します。有効なイベント名は次の通り です。

- apmd が起動されているとカーネルでの処理を行わなくなるイベン ト:

                       STANDBYREQ

USERSTANDBYREQ
SUSPENDREQ
コマンドリストに sync を含めることをおす すめします
USERSUSPENDREQ
コマンドリストに sync を含めることをおす すめします
BATTERYLOW
コマンドリストは zzz のみをおすすめします

- カーネルの処理終了後に apmd へ通知されるイベント:

NORMRESUME
CRITRESUME
STANDBYRESUME
POWERSTATECHANGE
UPDATETIME
CAPABILITIESCHANGE

上記以外のイベントは apmd へ通知されません。

 コマンドライン文法

前述の例では、 ‘exec’ から始まる 3 行はイベントに対するコマンド です。それぞれの行はセミコロンで終了している必要があります。イ ベントに対するコマンドリストは ‘{’ と ‘}’ で囲みます。 apmd ユーティリティは、ダブルクォーテーションで囲まれたコマンドの実 行に system(3) と同様に /bin/sh を使用します。各コマンドはコマ ンドリストの最後に到達するか 0 以外の終了コードで終わるまで順番 に実行されます。 apmd ユーティリティは、失敗したコマンドの終了 コードを、 syslog(3) 経由で報告します。加えて APM BIOS からの要 求イベントを取り消します。

 組み込み関数

コマンド行の代りに apmd の組み込み関数を指定できます。組み込み 関数はコマンド行と同様にセミコロンで終了します。次の組み込み関 数が現在サポートされています。

- reject:

APM BIOS からの直前の要求を拒否します。ディスプレイを閉じ た時に発生する SUSPEND 要求を拒否して、代りに STANDBY 状 態にしたい場合などに使用します。

使用例

設定ファイルのサンプルには、以下のものが含まれています。

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 から登場しました。

FreeBSD 10.0 June 28, 1999 FreeBSD 10.0

スポンサーリンク