スポンサーリンク

ADJKERNTZ(8) FreeBSD システム管理者マニュアル ADJKERNTZ(8)

名称

adjkerntz − ローカル時間 CMOS クロックをタイムゾーンの変更を反映するよう に調整し、現在のタイムゾーンオフセットをカーネル用に保持する

書式

adjkerntz −i

adjkerntz −a [−s]

解説

adjkerntz ユーティリティは、UTC がいつも設定されているカーネルクロック と、ローカル時間が設定されているかもしれない CMOS クロックとの間の適切な 関係を扱います。 adjkerntz ユーティリティは、また MS-DOS ファイルシステム のようなローカル時間ファイルシステムのための適切なタイムスタンプを扱うた めに、カーネルに機械のタイムゾーンのシフトを教えます。この主要な目的は、 最初から壊れている MS-DOS ファイルタイムスタンプの考え方を全面的に直すた めではなく、同じタイムスタンプを同じ機械上の FreeBSD の MS-DOS ファイルシ ステムと MS-DOS オペレーティングシステムで保つためのものです。ファイル /etc/wall_cmos_clock がある場合、 CMOS クロックは (MS-DOS や MS-Windows 互換モードの) ローカル時間を保持していることを意味します。このファイルが 無い場合、 CMOS クロックは UTC 時間を保持していることになります。 adjkerntz ユーティリティは、この状態をカーネル変数の machdep.wall_cmos_clock に通知します。

時間調整はシステムの立ち上げとシャットダウン時、そしてタイムゾーンの変更 が起きた時はいつでも必要になります。これらのことなった状況を扱うために、 adjkerntz は二つの方法で立ち上げられます。

       −i

この形式は、システムの立ち上げとシャットダウンを取り扱います。マル チユーザモードの先頭で、 adjkerntz ユーティリティは /etc/rc からこ のオプションをつけて呼び出されます。これは他のデーモンが実行される 前に行われます。 adjkerntz ユーティリティは自分自身をバックグラウン ドで実行します。その後、ローカル時間 CMOS クロックのために、 adjkerntz は、ローカル時間をそこから読み込み、カーネル時間を正しい UTC 時間に設定します。 adjkerntz ユーティリティは、これ以降での ’adjkerntz -a’ 呼び出しでの利用のためや、ローカルファイルシステムで の利用のために、ローカルタイムゾーンオフセットを machdep.adjkerntz カーネル変数に設定します。

ローカル時間 CMOS クロックのために、 ’adjkerntz -i’ は、一時停止 し、バックグラウンドのデーモンとして活動を停止します。このデーモン は、 SIGTERM シグナルを受け取るまでそのままです。 SIGTERM はふつ う、システムがマルチユーザモードを終了する時に init(8) によって送ら れます (普通、システムがシャットダウンされる時です)。 SIGTERM を受 け取った後で adjkerntz は、 UTC カーネル時間クロックを読み込み、必 要であれば現在のローカルタイムゾーンを反映するように CMOS クロック を更新します。その後、 adjkerntz は終了します。

−a [−s]
この形式は、タイムゾーンの変更が起こった時に、ローカル時間 CMOS ク ロックとカーネル machdep.adjkerntz 変数を更新するために使われます。 例えば、夏時間に入ったり、終了したりした時に使われます。 adjkerntz ユーティリティは、カーネルクロックの UTC 時間・以前に保存したタイム ゾーンオフセット・新しいタイムゾーンを計算するためのタイムゾーン変 更規則を使います。これは、新しいオフセットを machdep.adjkerntz カー ネル変数に保存し、 CMOS クロックを新しいローカル時間に更新します。 ’adjkerntz -a’ が、(タイムゾーン変更中に) 存在しない時間で実行され た場合、 −s オプションが使われていない場合は警告診断を出し、終了し ます。 −s オプションが使われている場合は、 30 秒間スリープしてもう 一度試します。

この形式は、大多数の現代のタイムゾーンの変更が起こる、真夜中から 5:00 までの間に 30 分毎に、root の crontab(5) から呼び出されるべき です。警告: −s オプションを crontab(5) のコマンドライン中で使っては いけません。使ってしまうと、複数の ’adjkerntz -a’ がお互いに衝突し てしまうでしょう。

adjkerntz ユーティリティは、カーネルタイムゾーン構造を消去し、カーネルク ロックを UTC タイムゾーンで走らせます。スーパユーザの権限が、全ての操作の ために必要とされます。

環境変数

       TZ

タイムゾーンの変更規則。 tzset(3) を見てください。 tzsetup(8) もしくは zic(8) を使っている場合は、必要ありません。

関連ファイル

       /etc/localtime

現在のゾーン情報ファイルです。 tzsetup(8)zic(8) を見てください。
/etc/wall_cmos_clock
空のファイルです。これは、機械の CMOS クロックが ローカル時間に設定されていることを示しています。反 対にこれが存在しないと、 UTC の CMOS クロックに設定 されています。

関連項目

tzset(3), crontab(5), mount_msdosfs(8), rc(8), sysctl(8), tzsetup(8), zic(8)

診断

診断はありません。エラーが起こった場合は、 adjkerntz はエラーメッセージを syslog(3) を使って記録し、0 でない値を返して終了します。

作者

Andrey A. Chernov ⟨ache@astral.msk.su⟩

歴史

adjkerntz ユーティリティは、 FreeBSD 1.0 から導入されました。

FreeBSD 10.0 April 4, 1996 FreeBSD 10.0

スポンサーリンク