Linux:看门狗总是很忙

时间:2017-07-27 10:40:28

标签: linux watchdog

我不能使用设备/ dev / watchdog,因为有些东西使用它。

echo 1 > /dev/watchdog -> Ressource busy

测试(以root身份):

ls 
crw-rw-rw- 1 root root  10, 130 27 juil. 12:34 /dev/watchdog
crw-rw-rw- 1 root root 251,   0 27 juil. 12:34 /dev/watchdog0

lsof /dev/watchdog
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
systemd   1 root   40w   CHR 10,130      0t0 8206 /dev/watchdog


fuser -v /dev/watchdog
                     UTIL.       PID ACCÈS  COMMANDE
/dev/watchdog:       root          1 F.... systemd

我不知道为什么我无法访问此设备。

内核:4.11 驱动程序:iTCO_wdt和softdog - >相同的行为

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

在配置文件中禁用systemd看门狗:/etc/systemd/system.conf对我有用。

答案 1 :(得分:0)

为什么“设备或资源繁忙”错误

我发现的问题是systemd和wd_keepalive似乎在每个定影器输出中使用看门狗资源:

>sudo fuser -v /dev/watchdog
                     USER        PID ACCESS COMMAND
/dev/watchdog:       root      15087 F.... wd_keepalive

>sudo fuser -v /dev/watchdog
                     USER        PID ACCESS COMMAND
/dev/watchdog:       root          1 F.... systemd

修复繁忙错误

我从/etc/systemd/system.conf删除了看门狗计时器引用,以消除systemd繁忙系统上的繁忙问题。

如果您感到胆大,可以杀死-9您的wd_keepalive PID,然后将字符回显到/dev/watchdog设备(如果要手动控制看门狗)。我宁愿只让守护程序执行其操作。

可在运行Stretch 12/17/18的Pi上运行的看门狗设置

与关于SO和网络的其他建议不同,我不需要在Pi上将看门狗安装为设备,例如在/boot/config.txt中。除了通过systemctl外,我也不需要调用任何服务。我刚跑

sudo apt-get install watchdog
sudo update-rc.d watchdog defaults

然后配置看门狗,我将这些行放在/etc/watchdog.conf

watchdog-device = /dev/watchdog

# Set default Timeout
watchdog-timeout         = 14

运行看门狗

然后,使用监视程序所需要做的唯一一件事就是从应用程序中调用它,该应用程序在启动后运行:

sudo systemctl stop watchdog
sudo systemctl enable watchdog
sudo systemctl start watchdog
sudo systemctl -l status watchdog