.\" Copyright (C) 1993-1998 by Andrey A. Chernov, Moscow, Russia. .\" 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 DEVELOPERS ``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. .\" .\" %FreeBSD: src/sbin/adjkerntz/adjkerntz.8,v 1.27 2002/08/21 18:09:45 trhodes Exp % .\" $FreeBSD$ .\" .Dd April 4, 1996 .Dt ADJKERNTZ 8 .Os .Sh 名称 .Nm adjkerntz .Nd "ローカル時間 CMOS クロックをタイムゾーンの変更を反映するように調整し、現在のタイムゾーンオフセットをカーネル用に保持する" .Sh 書式 .Nm .Fl i .Nm .Fl a Op Fl s .Sh 解説 .Nm ユーティリティは、UTC がいつも設定されているカーネルクロックと、 ローカル時間が設定されているかもしれない CMOS クロックとの間の適切な関係を扱います。 .Nm ユーティリティは、 また MS-DOS ファイルシステムのようなローカル時間ファイルシステム のための適切なタイムスタンプを扱うために、カーネルに機械のタイムゾーン のシフトを教えます。この主要な目的は、最初から壊れている MS-DOS ファイルタイムスタンプの考え方を全面的に直すためではなく、 同じタイムスタンプを同じ機械上の .Fx の MS-DOS ファイルシステムと MS-DOS オペレーティングシステムで保つためのものです。 ファイル .Pa /etc/wall_cmos_clock がある場合、 CMOS クロックは (MS-DOS や MS-Windows 互換モードの) ローカル時間を保持していることを意味します。 このファイルが無い場合、 CMOS クロックは UTC 時間を 保持していることになります。 .Nm ユーティリティは、この状態をカーネル変数の .Pa machdep.wall_cmos_clock に通知します。 .Pp 時間調整はシステムの立ち上げとシャットダウン時、そしてタイムゾーンの 変更が起きた時はいつでも必要になります。 これらのことなった状況を扱うために、 .Nm は二つの方法で立ち上げられます。 .Bl -tag -width 4n .It Fl i この形式は、システムの立ち上げとシャットダウンを取り扱います。 マルチユーザモードの先頭で、 .Nm ユーティリティは .Pa /etc/rc からこのオプションをつけて呼び出されます。 これは他のデーモンが実行される前に行われます。 .Nm ユーティリティは自分自身をバックグラウンドで実行します。 その後、ローカル時間 CMOS クロックのために、 .Nm は、ローカル時間をそこから読み込み、カーネル時間を正しい UTC 時間に 設定します。 .Nm ユーティリティは、これ以降での .Em "'adjkerntz -a'" 呼び出しでの利用のためや、ローカルファイルシステムでの利用のために、 ローカルタイムゾーンオフセットを .Pa machdep.adjkerntz カーネル変数に設定します。 .Pp ローカル時間 CMOS クロックのために、 .Nm "'adjkerntz -i'" は、一時停止し、バックグラウンドのデーモンとして活動を停止します。 このデーモンは、 SIGTERM シグナルを受け取るまでそのままです。 SIGTERM はふつう、システムがマルチユーザモードを終了する時に .Xr init 8 によって送られます (普通、システムがシャットダウンされる時です)。 SIGTERM を受け取った後で .Nm は、 UTC カーネル時間クロックを読み込み、必要であれば現在の ローカルタイムゾーンを反映するように CMOS クロックを更新します。 その後、 .Nm は終了します。 .It Fl a Op Fl s この形式は、タイムゾーンの変更が起こった時に、ローカル時間 CMOS クロックとカーネル .Pa machdep.adjkerntz 変数を更新するために使われます。例えば、夏時間に入ったり、 終了したりした時に使われます。 .Nm ユーティリティは、 カーネルクロックの UTC 時間・以前に保存したタイムゾーンオフセット・ 新しいタイムゾーンを計算するためのタイムゾーン変更規則を使います。 これは、新しいオフセットを .Pa machdep.adjkerntz カーネル変数に保存し、 CMOS クロックを新しいローカル時間に更新します。 .Em "'adjkerntz -a'" が、(タイムゾーン変更中に) 存在しない時間で実行された場合、 .Fl s オプションが使われていない場合は警告診断を出し、終了します。 .Fl s オプションが使われている場合は、 30 秒間スリープしてもう一度試します。 .Pp この形式は、大多数の現代のタイムゾーンの変更が起こる、 真夜中から 5:00 までの間に 30 分毎に、root の .Xr crontab 5 から呼び出されるべきです。 警告: .Fl s オプションを .Xr crontab 5 のコマンドライン中で使ってはいけません。使ってしまうと、複数の .Em "'adjkerntz -a'" がお互いに衝突してしまうでしょう。 .El .Pp .Nm ユーティリティは、カーネルタイムゾーン構造を消去し、カーネルクロックを UTC タイムゾーンで走らせます。 スーパユーザの権限が、全ての操作のために必要とされます。 .Sh 環境変数 .Bl -tag -width Fl .It Ev TZ タイムゾーンの変更規則。 .Xr tzset 3 を見てください。 .Xr tzsetup 8 もしくは .Xr zic 8 を使っている場合は、必要ありません。 .El .Sh 関連ファイル .Bl -tag -width /etc/wall_cmos_clock -compact .It Pa /etc/localtime 現在のゾーン情報ファイルです。 .Xr tzsetup 8 と .Xr zic 8 を見てください。 .It Pa /etc/wall_cmos_clock 空のファイルです。 これは、機械の CMOS クロックがローカル時間に設定されていることを 示しています。反対にこれが存在しないと、 UTC の CMOS クロックに 設定されています。 .El .Sh 関連項目 .Xr tzset 3 , .Xr crontab 5 , .Xr mount_msdosfs 8 , .Xr rc 8 , .Xr sysctl 8 , .Xr tzsetup 8 , .Xr zic 8 .Sh 診断 診断はありません。 エラーが起こった場合は、 .Nm はエラーメッセージを .Xr syslog 3 を使って記録し、0 でない値を返して終了します。 .Sh 作者 .An Andrey A. Chernov Aq ache@astral.msk.su .Sh 歴史 .Nm ユーティリティは、 .Fx 1.0 から導入されました。