Перезагрузка системы при выполнении команды "date -s"

Моя система перезагружается, когда я даю команду "date -s". Я собрал журнал, и он говорит это

Jan 18 13:27:46 watchdog[2421]: file /tmp/cmm/strobeWDT was not changed in 1 seconds.
Jan 18 13:27:46 watchdog[3303]: shutting down the system because of error 2
Jan 18 13:27:47 watchdog[2421]: stopping daemon (5.2)

Мое приложение, запущенное в системе, записывает в файл /tmp/cmm/strobeWDT. Если ему не удается выполнить запись в файл периодически, демон watchdog отправляет команду перезагрузки. Это понятно. Но только когда я даю команду "date -s" для установки новой даты, система регистрирует вышеуказанное сообщение и перезагружается.

Где проблема существует.

Я не знаю, достаточно ли вышеуказанной информации, чтобы решить проблему с вашей стороны. Пожалуйста, помогите

Добавление дополнительной информации

Я получаю вышеуказанное сообщение журнала из кода в file_stat.c (файл внутри исходного кода для сторожевого демона)

file_stat.c

#if USE_SYSLOG
   /* do verbose logging */
   if (verbose && logtick && ticker == 1)
       syslog(LOG_INFO, "file %s was last changed at %s.", file->name, ctime(&buf.st_mtime));
#endif

   if (time(NULL) - buf.st_mtime > file->parameter.file.mtime) {
       /* file wasn't changed often enough */
#if USE_SYSLOG
       syslog(LOG_ERR, "file %s was not changed in %d seconds.", file->name, file->parameter.file.mtime);
#else          /* USE_SYSLOG */
       fprintf(stderr, "file %s was not changed in %d seconds.", file->name, file->parameter.file.mtime);
#endif            /* USE_SYSLOG */

Я думаю, что проблема выходит в этой части кода, потому что ошибка происходит из этого кода. Параметр.file.mtime настраивается в /etc/watchdog.conf как "change=1"

2 ответа

Итак, вы устанавливаете дату, когда вы запускаете date -s, Вы устанавливаете часы назад или вперед? Похоже, когда вы устанавливаете системную дату, сторожевой таймер запутывается. Часы прыгают, а затем сторожевой таймер говорит: "Эй, время вышло, давайте перезагрузиться!".

Решение: не бегать date -s? Вы должны установить и запустить ntp вместо того, чтобы постепенно вращать часы вместо того, чтобы заставлять их прыгать с помощью date -s, Вот пример настройки NTP, например.

Я не знаком со сторожевым таймером, но хочу дать несколько идей: - почему вы хотели отправить в сторожевой таймер команду перезагрузки, если ваше приложение не удалось? - Вы проверили, чтобы увидеть любую команду date -s псевдоним? - каково значение вашей средней нагрузки?

Другие вопросы по тегам