FreeBSD命令adjkerntz简介(调节改变CMOS时间)

王朝system·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

◎前言

不知道大家是否有时候会像我一样会去看看系统在跑些啥东西呢?

这时发现了一个很特殊的咚咚... adjkerntz -i

你是不是也曾经看过但忽略了呢?

◎名称

adjkerntz - 调节改变CMOS时间来反映出时区的改变及让kernel维持着当前的时区..

◎语法

adjkerntz -i

adjkerntz -a [-s]

◎叙述

adjkerntz 在 kernel 及 CMOS 时间中维持适当的关,

kernel 时间是以 UTC 为准,而 CMOS 时间是以当地时间为准。

:UTC = 世界标准时间 (格林威治时间)

adjkerntz 主要的目的在於维护同一机器中,

FreeBSD MS-DOS 档案系统及 MS-DOS 作业系统的时间一致。

若 /etc/wall_cmos_clock 这个档案存在,那表示 CMOS 时间设定於当地时间;

若档案不存在,那表示 CMOS 时间被设定为 UTC 时间。

adjkerntz 将这个状况导入 machdep.wall_coms_clock kernel variable。

◎参数

时间调节在系统开机及关机,以及时区改变时是很需要的。

为了要处理不同的状况,adjkerntz 可以粤街址绞街葱小?

-i 这个形式处理系统开机及关机。

在进入多人模式,在任何其他服务启动前,

adjkerntz 以 /etc/rc 启动,并放入背景执行,

然後,adjkerntz 透过 CMOS 读取当地时间,并且将时间设定为 UTC 时间。

adjkerntz 会一直以 daemon 的形态於背景执行,直到他收到 SIGTERM 讯息。

SIGTERM 讯息通常会在系统离开多人模式之後由 init 送出。

(通常是系统shoutdown造成系统离开多人模式)

在收到 SIGTERM 讯息之後,adjkerntz 读取UTC kernel 时间,

并且更新 CMOS 时间。

若可能的话,结束前会确保CMOS时间能够反应正确的当地时间。

-a [-s] 当时区改变时,这个形态被用来更新 CMOS 当地时间,

及kerlnel machdep.adjkerntz variable,

例如:

当进入或结束日光节约时间,adjkerntz 使用kernel时间的UTC时间,

储存先前时区,并改变时区规则来计算新的时区。

adjkerntz 储存新的设定到 machdep.adjkerntz kernel variable ,

并且更新 CMOS 时间。

若 adjkerntz -a 在一个不存在的时区(在时区改变时)被启动,

adjkerntz 在结束时会显示警告的讯息,除非 -s 参数被使用,

在这种情况下,adjkerntz 会休息(sleep) 30 分钟然後重新尝试。

这个形式(adjkerntz -a),在 root 的 crontab 中,於

每次午夜前的半个小时及5 am 当许多现在时区改变时被启动。

实际上的状况如下... /etc/crontab 显示

◎相关档案

/etc/localtime 目前时区资讯档案。

/etc/wall_cmos_clock 空白档案。

此档存在表示机器的CMOS时间被设定在当地时间。

此档若不存在表示使用UTC CMOS时间。

◎相关讯息

平时不会有任何讯息,若有任何错误发生,

adjkerntz 会经由 syslog 记录错误讯息,

并且回传一个非0的值。

◎adjkerntz 作者

Andrey A. Chernov <ache@astral.msk.su>

◎历史

adjkerntz 命令最早出现在FreeBSD 1.0.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航