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 −s −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 - カーネルの処理終了後に apmd へ通知されるイベント: NORMRESUME 上記以外のイベントは 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 関連項目 |
作者
Mitsuru IWASAKI 〈iwasaki@FreeBSD.org〉 また、 |
歴史
apmd ユーティリティは FreeBSD 3.3 から登場しました。 FreeBSD 10.0 June 28, 1999 FreeBSD 10.0 |