为什么systemd会向看门狗发送这么多ping?

时间:2015-10-28 12:30:55

标签: embedded-linux systemd watchdog

我已使用RuntimeWatchdogSec=10

配置systemd

Systemd正在开始向看门狗设备发送大量ping(前5秒1500)。它每隔一段时间就会正常工作,即一次或两次ping,间隔为5秒,然后再次坚果。知道是什么引起了这个吗?

我在内部开发的嵌入式Linux发行版上使用systemd v204

1 个答案:

答案 0 :(得分:1)

  • Systemd在同一个循环中执行其内务工作并执行ping操作。

  • 因此,当systemd从其保持工作中解脱出来时,它将等待RuntimeWatchdogSec的指定值的一半,并且它将执行ping操作。

  • 在启动时,systemd加载了其工作队列,因此它会经常ping。

代码与此类似,

while (cond)
{
    if (cond1)
        watchdog_ping(); /* Ping happens here */

    if (task1_queue() > 0)
        continue;

    if (task2_queue() > 0)
        continue;

    if (task3_queue() > 0)
        continue;

    /* ...... */

     /* Sleep for half the RuntimeWatchdogSec time */
     do_wait();
}