时间受到ntpd和/ etc / localtime的影响

任何人都可以解释ntpd/etc/localtimesystem clock相互交互的,在UNIX中还是更具体的在FreeBSD中?

如果我误解了其中的一些概念,以便您能指出这些概念,我将对这些概念进行如下详细描述。 我真正的问题是下面。

DATE当我们在shell中执行“ date modify ”时,我认为它会修改/etc/localtime/etc/localtime包含date和时间以及时区信息,通过glibc函数(如localtime()查询,时区也可以由tzset()手动设置。

时钟从一些在线的其他材料中,计算机中有两个时钟: hardware clocksystem clock 。 硬件时钟由主板上的电池维持,而系统时钟是软件概念。 系统启动时系统时钟将由硬件时钟设置。 但可以通过ntpd稍后调整(如果我错了,请纠正我)。

ntpd nptd是系统启动后几秒钟开始的用户空间进程。 它会查询一些由ntp.conf某些ntp服务器。 它具有时间漂移调整速度慢的特点,不会发生剧烈的时间变化。 (但时区怎么样,ntpd也会查询时区,然后逐渐改变它,这可能需要很长时间。)对于戏剧性的时间更新,有一个ntpupdate() api。

我发现没有资源解释他们之间的交互。 这些概念中的每一个似乎都有一些独立的本地文件来触摸和保持。 我问的原因是因为我观察到,我写的过程中,每当用户要求显示一些数据时dynamic地调用localtime ,它并不反映date modify更新的时区更改(在过程中时间或时区都没有更改)。

如果我正确地理解了你的话,我想以下回答你的问题中的主要问题:

要更改时区,请将/etc/localtimereplace为/usr/share/zoneinfo目录树中的某个文件。 使用date命令设置时间不会更改时区,因此不会对/etc/localtime文件执行任何操作。

请注意,更改/etc/localtime不一定会影响正在运行的进程。 如果要确保所有守护进程都能看到新的时区,请重新启动。