我有一台运行 ubuntu 14.04 的计算机。我正在运行一个对时间跳跃敏感的进程,我注意到发生了一些时间跳跃,前后跳跃的量级都是 100 毫秒。我的理解是,如果时间偏移在较长时间内大于 128 毫秒,ntpd 才应该进行步进校正。但是,当我查看系统日志时,我看到了以下内容:
Feb 1 06:57:11 alice ntpd[2252]: ntpd exiting on signal 15
Feb 1 06:57:22 alice ntpdate[2375]: step time server 71.210.146.228 offset 0.007476 sec
Feb 1 06:57:22 alice ntpd[2569]: ntpd [email protected] Wed Oct 5 12:35:47 UTC 2016 (1)
Feb 1 06:57:22 alice ntpd[2570]: proto: precision = 0.417 usec
Feb 1 06:57:22 alice ntpd[2570]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
Feb 1 06:57:22 alice ntpd[2570]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Feb 1 06:57:22 alice ntpd[2570]: Listen and drop on 1 v6wildcard :: UDP 123
Feb 1 06:57:22 alice ntpd[2570]: Listen normally on 2 lo 127.0.0.1 UDP 123
Feb 1 06:57:22 alice ntpd[2570]: Listen normally on 3 wlan0 10.2.21.26 UDP 123
Feb 1 06:57:22 alice ntpd[2570]: peers refreshed
Feb 1 06:57:22 alice ntpd[2570]: Listening on routing socket on fd #22 for interface updates
Feb 1 06:57:26 alice ntpd[2570]: ntpd exiting on signal 15
Feb 1 06:57:37 alice ntpdate[2941]: adjust time server 198.60.22.240 offset -0.008872 sec
此处的 ntpdate step 命令似乎步进小于 128ms(在 syslog 的其他部分,有更大的跳跃)。ntpd 是否调用 ntpdate 发出步进更正,还是其他进程正在运行 ntpdate?如果是后者,我如何确定该服务是什么?我想禁用它,以便我只能在时间跳跃安全时调用 ntpdate。
编辑-更多日志:
日志中也有较大的跳跃。示例:
Jan 31 08:54:10 alice ntpdate[2426]: adjust time server 132.163.4.102 offset 0.432374 sec
Feb 1 06:57:07 alice ntpdate[935]: step time server 198.60.22.240 offset 1.492618 sec
Feb 1 06:57:22 alice ntpdate[2375]: step time server 71.210.146.228 offset 0.007476 sec
Feb 1 06:57:37 alice ntpdate[2941]: adjust time server 198.60.22.240 offset -0.008872 sec
答案1
ntpd 和 ntpdate 都在运行。在 grep 了我的 /etc 目录后,我发现 if-up.d/ 目录中有一个运行 ntpdate 的脚本。我删除了它,现在只用 ntpd 来管理时间。