linux - обнаружение изменения системного времени - PullRequest
2 голосов
/ 12 февраля 2010

Есть ли способ получить уведомление, когда происходит обновление системного времени с сервера времени или из-за изменения летнего времени? Я после API / системного вызова или эквивалентного.

Это часть или моя попытка оптимизировать создание значения для чего-то похожего на SQL NOW () с точностью до часа, без использования SQL.

Ответы [ 2 ]

4 голосов
/ 12 февраля 2010

Не знаю, есть ли способ получить уведомление об изменении системного времени, но

  • Системное время сохраняется в формате UTC, поэтому никогда не происходит никаких изменений в связи с изменением летнего времени, о которых необходимо уведомить.

  • Если моя память верна, NTP-демон обычно настраивает часы, изменяя их скорость, опять же, никаких изменений не требуется.

Так что единственный раз, когда вы будете уведомлены, это после необычных манипуляций.

1 голос
/ 12 февраля 2010

clock_gettime на большинстве последних систем Linux невероятно быстр, и, как правило, довольно удивительно точен; Вы можете узнать точность, используя clock_getres. Но для часовых отметок часового уровня, gettimeofday может быть более удобным, поскольку он может выполнить настройку часового пояса для вас.

Просто позвоните в соответствующий системный вызов и делите на часы каждый раз, когда вам нужна временная метка; все остальные настройки времени от NTP или все, что уже было сделано для вас.

...