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 |