FreeBSD命令 lastcomm介绍 1.

◎前言
不知道大家是否有时候会像我一样会去看看系统在跑些啥东西呢?
这时发现了一个很特殊的咚咚...;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;

◎历史
adjkerntz;命令最早出现在FreeBSD;1.0.

    推荐阅读