Bash 有什么方法可以每 X 秒写入一个文件而不关闭它吗?

Bash 有什么方法可以每 X 秒写入一个文件而不关闭它吗?

我系统上的硬件看门狗需要以小于 60 秒的间隔0进行写入,否则它将触发。/dev/watchdog但是,文件句柄必须保持打开状态,否则看门狗将被禁用。

例如

echo "0" > /dev/watchdog

不起作用,因为文件句柄在回显完成后关闭。

有没有什么方法可以在 bash 中设置一个循环,0定期写入/dev/watchdog但保持文件句柄打开?

答案1

while true; do
  echo "0"
  sleep 30
done > /dev/watchdog

答案2

听起来你想要一个守护进程:

while sleep 50; do
    echo 0
done > /dev/watchdog

这里的文件句柄在循环结束之前不会关闭。请注意,如果由于某种原因执行被阻止超过 10 秒,则可能会失败。这不太可能发生,但在技术上是可行的。

您最好编写一个while条件,其中也包括看门狗失败的条件。

相关内容