当 rc.conf 和 PostgreSQL 显示“America/Los_Angeles”时,FreeBSD 9.3 日期显示 UTC

当 rc.conf 和 PostgreSQL 显示“America/Los_Angeles”时,FreeBSD 9.3 日期显示 UTC

我们正在测试 FreeBSD 9.3,我将系统配置为使用美洲/洛杉矶作为时区,我们已经将 ntp 服务器指向 pool.ntp.org。一切都很好,直到我注意到某些系统日志中的时间戳已关闭,即它们报告日志条目的 UTC 时间戳,而不是之前报告的本地时间。

所以我去了控制台,果然,日期现在报告 UTC:

# date Thu Jan 15 19:40:22 UTC 2015  <<-- this had been reporting PST

但是,rc.conf 设置仍然存在美洲/洛杉矶:

# grep 'timezone' /etc/rc.conf
timezone="America/Los_Angeles"

PostgreSQL 数据库看起来不错:

phlog=# show timezone;
      TimeZone
---------------------
 America/Los_Angeles
(1 row)

phlog=# select now();
              now
-------------------------------
 2015-01-15 11:43:44.485139-08
(1 row)

这是我们的 ntp.conf 文件:

# cat /etc/ntp.conf
server pool.ntp.org
restrict default noquery nomodify notrap nopeer
restrict 127.0.0.1

我扫描了 /var/log/ 中的文件,以查找可能导致系统时间更改的任何线索。

# grep ntp messages
Jan 13 23:04:47 test99 ntpd[2702]: ntpd exiting on signal 15
Jan 13 23:07:07 test99 ntpd[2724]: ntpd 4.2.4p5-a (1)
Jan 13 23:58:40 test99 ntpd[2726]: time reset +0.156664 s
Jan 15 19:32:48 test99 ntpd[2726]: ntpd exiting on signal 15
Jan 15 19:34:48 test99 ntpd[2724]: ntpd 4.2.4p5-a (1)
Jan 15 19:56:12 test99 ntpd[2726]: ntpd exiting on signal 15  <<-- SEE NOTE BELOW
Jan 15 12:58:13 test99 ntpd[2725]: ntpd 4.2.4p5-a (1)

注意:这是将时区设置为后重新启动美洲/博伊西看看是否需要,它确实需要。现在日期报告:

Thu Jan 15 15:09:39 MST 2015

可能发生了什么导致系统时钟丢失其时区设置?

更新

我一直在阅读与 FreeBSD 时区配置相关的各种资源,发现应该有一个/etc/当地时间文件就位。我找过这个文件,但没有看到它日期报告了 UTC。将内容重置到不同的时区后,我现在可以看到该文件。看起来可能有什么东西删除了该文件。我会继续挖掘。

答案1

我确认删除该文件/etc/当地时间导致所描述的症状。

我不知道是什么在我们的环境中删除了该文件,这很可能是我们的代码库中的一些错误逻辑。

相关内容