Как обнаружить изменение системного времени в Linux?

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

Это - часть моего усилия оптимизировать генерацию значения для чего-то подобного SQL ТЕПЕРЬ () к гранулярности часа, не используя SQL.

5
задан jww 18 November 2019 в 13:07
поделиться

2 ответа

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

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

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

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

4
ответ дан 14 December 2019 в 04:37
поделиться

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

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

1
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: