総合手引 | セクション 8 | オプション |
apmd ユーティリティは以下の実行時オプションを理解します。
| |
デバッグモードで起動します。 デーモンモードではなくフォアグラウンドで動作します。 | |
| |
デフォルトの設定ファイル /etc/apmd.conf の代りに使用する、別の設定ファイル file を指定します。 | |
| |
電源状態の変更が検出されたが (AC_POWER_STATE) ラップトップの BIOS がそれを報告しないときに、 apmd に POWERSTATECHANGE イベントをシミュレートさせます。 これにより、電源コードを抜いたときに LCD バックライトを暗くする といったことが可能になります。 | |
| |
冗長モードで動作します。 | |
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 や、設定ファイルを読み込ませるために使えます。
apm_event SUSPENDREQ { exec "sync && sync && sync"; exec "sleep 1"; exec "zzz"; }
この例では、APM イベント ‘SUSPENDREQ’ (ディスプレイを閉じた時などに発生します) を apmd が受け取ると、 ‘sync’ コマンドを 3 回実行し、少し待ったあとに zzz) を実行してシステムをサスペンドさせます。
-
apmd
が起動されているとカーネルでの処理を行わなくなるイベント:
| |
STANDBYREQ
USERSTANDBYREQ SUSPENDREQ | |
コマンドリストに sync を含めることをおすすめします | |
USERSUSPENDREQ | |
コマンドリストに sync を含めることをおすすめします | |
BATTERYLOW | コマンドリストは zzz のみをおすすめします |
- カーネルの処理終了後に
apmd
へ通知されるイベント:
| |
NORMRESUME
CRITRESUME STANDBYRESUME POWERSTATECHANGE UPDATETIME CAPABILITIESCHANGE | |
上記以外のイベントは 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 | |
また、 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 (8) | June 28, 1999 |
総合手引 | セクション 8 | オプション |
このマニュアルページサービスについてのご意見は 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 |