执行“date -s”命令时系统重启

执行“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。如果它无法定期写入文件,看门狗守护程序会发送重新启动命令。这是可以理解的。但只有当我给出“date -s”命令来设置新日期时,系统才会记录上述消息并重新启动。

问题存在哪里呢?

我不知道上述信息是否足以解决您的问题。请帮忙

添加更多信息

我从 file_stat.c 中的代码(看门狗守护进程源代码内的文件)中获取上述日志消息

文件统计.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 */

我认为问题出在这部分代码上,因为错误就是从这段代码产生的。parameter.file.mtime 在 /etc/watchdog.conf 中配置为“change=1”

答案1

所以您在运行时设置日期date -s。您是将时钟向后设置还是向前设置?听起来当您设置系统日期时,看门狗会感到困惑。时钟跳动,然后看门狗说“嘿,时间到了,让我们重新启动!”。

解决方案:不运行date -s?您应该设置并运行 ntp 来逐步调整时钟,而不是通过使用 使其跳转date -s。这是一个ntp 设置指南例如。

答案2

我不熟悉看门狗,但我想给出一些想法: - 如果你的应用程序失败了,为什么要向看门狗发送重启命令? - 你是否检查过任何命令date -s别名? - 你的平均负载值是多少?

相关内容