我们有一个以嵌入式 Debian-Linux 作为操作系统的平台,该平台将在全球范围内分发。我们有一个电池供电的 RTC,应该用作系统时间。我们不想有任何时区或任何有关当地时间的信息。
但每次我们有以太网连接时,系统时间都会更改为 utc。
到目前为止我们已经尝试过什么
1)删除了本地时间和区域信息文件。 -> 没有效果,插入以太网后时间仍在变化。
2)将本地时间设置为 /usr/share/zone/UTC -> 仍然没有效果,时间自动更改为 utc。
我的问题:
1)插入以太网后,是什么改变了我们的时间?我们没有任何时间服务器!
2)是否有办法调整系统,以便我们不依赖任何时区信息。我们所需要的只是使用嵌入式 RTC 作为我们的时间信息。
答案1
unix 系统被设计为在 UTC 上运行,时区对于我们这些喜欢查看当地时间的人类来说是一种方便。在同一个系统上工作的两个用户可能位于不同的时区,因此在其环境中设置了不同的时区。
看来您想强制系统在您的时区运行,但您也说您想忽略时区,那么就忽略它们并以 UTC 工作。
话虽如此,应该可以在错误的时间运行系统,从而达到你想要的效果。
正如其他人所建议的那样,ntpd
或者ntpdate
可能正在更改您的系统时间。
在我的系统(ubuntu14.04)上,快速 grep for ntp
in/etc
显示ntpdate
当网络启动时被调用,并且在 dhcp 客户端作为 shell 挂钩退出后设置时间服务器。
/etc/dhcp/dhclient-exit-hooks.d/ntpdate
/etc/network/if-up.d/ntpdate
看看那里。
此外,时间更改通常会记录在您的系统日志中,搜索step time server
答案2
当网络通过 DHCP 配置时,就可以设置时区。请参阅 serverfault.com/questions/333348/
DHCP 还可以设置 ntp 服务器,但你说 ntpd 没有运行,所以这里并不重要。但正如解决方案所示,ntpdate 可以还被运行。因此,根据我最初的评论,您应该确保 ntpdate 不在 via 周围sudo apt-get uninstall ntp
。