Python 中的 Beaglebone Black 看门狗

Beaglebone Black watchdog in Python

我有一个 Beaglebone Black 运行ning Debian,我需要一个脚本 运行ning 在后台,它会每隔几秒检查一次系统是否仍然 运行ning。据我了解,BBB 中的看门狗是基于硬件的,运行 独立于 OS,因此即使 OS 完全冻结,它也可以重启设备(对吧?)。这是来自 logicsupply:

的一个非常简单的例子
#!/usr/bin/env python

import time
import os

os.nice(20)
time.sleep(60)                  # Wait before starting
wd = open("/dev/watchdog", "w+")
while 1:
     wd.write("\n")
     wd.flush()
     time.sleep(5)

但我找不到更改默认超时的方法。在 C 中它看起来像:

ioctl(fd, WDIOC_SETTIMEOUT, &timeout);

但是在 Python 中调用 ioctl 函数似乎相当晦涩。从 this discussion 看来,C 宏定义可能具有不同的值,具体取决于硬件。在 Python 中是否有一种方便的方法来解决它们(至少,这个特定的方法,以更改默认的看门狗超时)? 在后台 运行 脚本的最佳方法是什么,以便它可以用冻结 OS 重新启动系统?

by Padraic Cunningham has directed me to the manpage for watchdog.conf 这是在 AM335x 上配置硬件 WDT 的正确方法,因此不需要额外的 scripts/daemons:

watchdog-timeout = 10