Когда системное время синхронизируется с аппаратными часами?

Вы можете сделать все это в операторе BEGIN, используяgetline

awk '
  BEGIN {
    while(1) {
      line = sep = ""
      for (i = 1; i < ARGC; i++) {
        if ((getline < ARGV[i]) <= 0) exit
        line = line sep $2
        sep = OFS
      }
      print line
    }
  }' input{1..n} > out
0
29.09.2021, 08:18
1 ответ

Ответственность за это лежит на «операционной системе». То, как это реализовано, варьируется.

Необходимо рассмотреть два случая:

  1. Если единственным источником времени в системе является RTC, то нет необходимости обновлять его, за исключением случаев, когда установлено время. В Linux это обычно обрабатывается либо hwclock, либо timedatectl.

  2. Если в системе есть внешний источник времени (по сети ), необходимо обновить RTC. В Linux это раньше обрабатывалось при выключении (с помощью hwclock), но ядро ​​(начиная с 3.7 )может обновлять RTC автоматически каждые одиннадцать минут , если системное время поддерживается с помощью внешний источник, и RTC настроен соответствующим образом.

В Linux ядро ​​ожидает, что службы синхронизации времени сообщат, синхронизировано ли время; это делается путем очистки или установки бита состояния STA_UNSYNCс помощью системного вызова adjtimex. Само ядро ​​может установить этот бит, если оно определяет, что время не синхронизировано , но оно никогда не очищает его самостоятельно.

1
29.09.2021, 09:28

Теги

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