linux - 检测系统时间的变化
题
当时间服务器更新系统时间或由于夏令时更改时,有没有办法收到通知?我正在执行 API/系统调用或同等功能。
我的部分工作是在不使用 SQL 的情况下,将类似于 SQL NOW() 的值的生成优化到小时粒度。
解决方案
在最近的Linux系统clock_gettime
是令人难以置信的快速的,通常相当令人惊讶的精确以及;你可以使用clock_getres
找出精度。但小时级别的时间戳,gettimeofday
可能会更方便,因为它可以为你做的时区调整。
简单地调用适当的系统调用和执行划分小时每次需要时间戳的时间;所有来自NTP其他的时间调整或任何会已经已经为您做了。
其他提示
我不知道是否有办法通知系统时间的变化,但是
系统时间存储为 UTC,因此永远不会因 DST 更改而发生更改而被通知。
如果我没记错的话,NTP 守护进程通常通过改变时钟速度来调整时钟,同样没有通知任何变化。
因此,只有在发生不常见的操作之后,您才会收到通知。
不隶属于 StackOverflow