我不能使用设备/ 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 - >相同的行为
感谢您的帮助。
答案 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
设备(如果要手动控制看门狗)。我宁愿只让守护程序执行其操作。
与关于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