aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man8/apmd.8
blob: 1b53302484a7d72b5917305b0dc32f1b446e7d06 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
.\" Copyright (c) 1999 Mitsuru IWASAKI <iwasaki@FreeBSD.org>
.\" Copyright (c) 1999 KOIE Hidetaka <koie@suri.co.jp>
.\" Copyright (c) 1999 Yoshihiko SARUMARU Aq <mistral@imasy.or.jp>
.\" Copyright (c) 1999 Norihiro Kumagai <kuma@nk.rim.or.jp>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)apmd.8	1.1 (FreeBSD) 6/28/99
.\" %FreeBSD: src/usr.sbin/apmd/apmd.8,v 1.7.2.5 2001/08/16 15:55:38 ru Exp %
.\"
.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/apmd.8,v 1.12 2001/08/18 23:50:44 horikawa Exp $
.\"
.Dd June 28, 1999
.Dt APMD 8
.Os
.Sh 名称
.Nm apmd
.Nd Advanced Power Management 監視デーモン
.Sh 書式
.Nm
.Op Fl d
.Op Fl f file
.Op Fl v
.Sh 解説
.Nm
は、指定した Advanced Power Management
.Pq Tn APM
イベントを監視し、
いずれかのイベントが発生した場合、
対応するコマンドシーケンスを実行します。
設定ファイルで指定されたイベントのみが
.Nm
へ通知され、それ以外のイベントは無視されます。
APM BIOS によって発行された
イベントに対して、
.Nm
は設定ファイルで指定されたコマンドシーケンスを実行します。
.Nm
をサスペンド/スタンバイを監視するようにして起動すると、
カーネルはそれらの要求イベントに対する
処理を行いません。そのためそれらのイベント発生時に
処理をさせたい場合は、適切なコマンドまたは組み込み関数を
明示的に設定ファイルに指定する必要があります。
.Pp
.Nm
は以下の実行時オプションを理解します。
.Bl -tag -width -f_file
.It Fl d
デバッグモードで起動します。
デーモンモードではなくフォアグラウンドで動作します。
.It Fl f Ar file
デフォルトの設定ファイル
.Pa /etc/apmd.conf
の代りに使用する、別の設定ファイル
.Ar file
を指定します。
.It Fl v
冗長モードで動作します。
.El
.Pp
.Nm
は起動時に設定ファイル
(デフォルトは
.Pa /etc/apmd.conf )
を読み込み、
監視すべきイベントを APM デバイスドライバへ通知します。
終了時には APM デバイスドライバはイベントの監視を自動的に解除します。
.Pp
.Nm
プロセスがシグナル SIGHUP を受信すると、設定ファイルを読み込み直して、
設定の変更内容を APM デバイスドライバに通知します。
.Pp
.Nm
は、デバイスファイル
.Pa /dev/apmctl
を経由して、イベントの受け取りや APM システム制御用の
.Xr ioctl 2
要求を発行します。このデバイスファイルは排他制御されてオープンされるため、
.Nm
プロセスは同時に 1 つのみ起動可能です。
.Pp
.Nm
が APM イベントを受け取ると、設定ファイルで指定された
イベントに対応するコマンドリストを実行するために
子プロセスを生成し、再び APM イベントの待ち状態になります。
生成された子プロセスは、
指定されたコマンドを 1 つずつ列挙された順番に実行します。
.Pp
.Nm
が SUSPEND/STANDBY 要求に対するコマンドリストを処理している間、
カーネル内の APM デバイスドライバは、APM BIOS に対して
毎秒 1 回以上通知を発行し続けます。
これによって BIOS は、コマンド処理中であり要求が
まだ完結していないことを認識します。
.Pp
.Nm
デーモンはファイル
.Pa /var/run/apmd.pid
を作成し、プロセス ID を記録します。これは
.Nm
を kill や、設定ファイルを読み込ませるために使えます。
.Sh 設定ファイル
.Nm
の設定ファイルの構造は非常にシンプルです。例えば次のようになります。
.Pp
.Bd -literal
apm_event SUSPENDREQ {
        exec "sync && sync && sync";
        exec "sleep 1";
        exec "zzz";
}
.Ed
.Pp
この例では、APM イベント
.Ql SUSPENDREQ
(ディスプレイを閉じた時などに発生します) を
.Nm
が受け取ると、
.Ql sync
コマンドを 3 回実行し、少し待ったあとに
.Nm zzz ( Ns Nm apm Fl z )
を実行してシステムをサスペンドさせます。
.Pp
.Bl -bullet
.It
apm_event キーワード
.Bd -ragged -offset indent
.Ql apm_event
はキーワードであり、イベントごとの設定の開始を指示します。
.Ed
.It
APM イベント
.Bd -ragged -offset indent
複数のイベントに対して同じ処理を実行したい場合は、それらのイベント名を
コンマで区切って指定します。有効なイベント名は次の通りです。
.Bl -item
.It
-
.Nm
が起動されているとカーネルでの処理を行わなくなるイベント:
.Pp
.Bl -tag -width USERSUSPENDREQ -compact -offset indent
.It STANDBYREQ
.It USERSTANDBYREQ
.It SUSPENDREQ
コマンドリストに sync を含めることをおすすめします
.It USERSUSPENDREQ
コマンドリストに sync を含めることをおすすめします
.It BATTERYLOW
コマンドリストは zzz のみをおすすめします
.El
.It
- カーネルの処理終了後に
.Nm
へ通知されるイベント:
.Pp
.Bl -tag -width USERSUSPENDREQ -compact -offset indent
.It NORMRESUME
.It CRITRESUME
.It STANDBYRESUME
.It POWERSTATECHANGE
.It UPDATETIME
.It CAPABILITIESCHANGE
.El
.Pp
上記以外のイベントは
.Nm
へ通知されません。
.El
.Ed
.It
コマンドライン文法
.Bd -ragged -offset indent
前述の例では、
.Ql exec
から始まる 3 行はイベントに対するコマンドです。
それぞれの行はセミコロンで終了している必要があります。
イベントに対するコマンドリストは
.Ql {
と
.Ql }
で囲みます。
.Nm
はダブルクォーテーションで囲まれたコマンドの実行に
.Xr system 3
と同様に
.Pa /bin/sh
を使用します。各コマンドはコマンドリストの最後に到達するか 0 以外の
終了コードで終わるまで順番に実行されます。
.Nm
は、失敗したコマンドの終了コードを、
.Xr syslog 3
経由で報告します。
加えて APM BIOS からの要求イベントを取り消します。
.Ed
.It
組み込み関数
.Bd -ragged -offset indent
コマンド行の代りに
.Nm
の組み込み関数を指定できます。組み込み関数はコマンド行と同様に
セミコロンで終了します。次の組み込み関数が現在サポートされています。
.Bl -item
.It
- reject:
.Bd -ragged -offset indent
APM BIOS からの直前の要求を拒否します。ディスプレイを閉じた時に発生す
る SUSPEND 要求を拒否して、代りに STANDBY 状態にしたい場合などに使用し
ます。
.Ed
.El
.Ed
.El
.Sh 使用例
設定ファイルのサンプルには、以下のものが含まれています。
.Bd -literal
apm_event SUSPENDREQ {
        exec "/etc/rc.suspend";
}

apm_event USERSUSPENDREQ {
        exec "sync && sync && sync";
        exec "sleep 1";
        exec "apm -z";
}

apm_event NORMRESUME, STANDBYRESUME {
        exec "/etc/rc.resume";
}

# 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";
#}
.Ed
.Sh 関連ファイル
.Bl -tag -width /etc/apmd.conf -compact
.It Pa /etc/apmd.conf
.It Pa /dev/apmctl
.It Pa /var/run/apmd.pid
.El
.Sh 関連項目
.Xr apm 4 ,
.Xr apm 8
.Sh 作者
.An Mitsuru IWASAKI Aq iwasaki@FreeBSD.org
.An KOIE Hidetaka Aq koie@suri.co.jp
.Pp
また、
.An Warner Losh Aq imp@FreeBSD.org ,
.An Hiroshi Yamashita Aq bluemoon@msj.biglobe.ne.jp ,
.An Yoshihiko SARUMARU Aq mistral@imasy.or.jp ,
.An Norihiro Kumagai Aq kuma@nk.rim.or.jp ,
.An NAKAGAWA Yoshihisa Aq nakagawa@jp.FreeBSD.org ,
.An Nick Hilliard Aq nick@foobar.org
による貢献がありました。
.Sh 歴史
.Nm
コマンドは
.Fx 3.3
から登場しました。