我有一台运行 Debian 8 的 64 位 Intel PC,带有基于电容器的时钟,这意味着在断电 3 天后,硬件时钟的时间就会丢失。为了解决这个问题,我想我们可以使用 LAN 上附近的计算机(具有更好的电池支持 RTC)来充当本地 NTP 服务器。
启动时,PC 是否能够足够快地执行 NTP 同步,以便在“正常”应用程序启动时(尤其是我们的用户应用程序)它们使用正确的时间,并且我们不会处理时间不连续性?我们的主要功能是数据记录,因此如果我们以 1970 年开始记录文件,然后将其跳跃到 2016 年,那将是灾难性的。
答案1
您应该做两件事。确保ntpd
在启动顺序中尽早启动,并ntp-wait
在任何应用程序启动之前将其放置在启动顺序中的某个位置。
根据您的 Linux 版本,实现此目的的方式会有所不同。但是,您应该使应用程序的启动取决于ntp-wait
完成情况。
ntp-wait
只需等待ntpd
守护进程报告它已同步。
在 Debian 8 上执行此操作的正确方法是配置systemd
并为 添加新服务ntp-wait
,然后您的应用程序将依赖该服务。
最简单的方法是ntp-wait
在应用程序的启动脚本中添加一个。