Raspberry Pi の Hardware Watchdog を有効にする

我が家で動かしている Raspberry Pi はほとんどが常時起動している。なかにはときどきフリーズしてしまうものがある。フリーズに気が付かないことがあるし、一旦フリーズしてしまうと電源を抜き差しする強引な方法でしか復帰できない。

そういうわけで、フリーズしたときに自動的に Raspberry Pi OS を再起動する Hardware Watchdog というものを有効にしてみた。

環境:Raspberry Pi 3 Model B(buster Lite)

(1)/boot/config.txt に以下を追記する。

dtparam=watchdog=on

再起動する。

(2)watchdog サービスをインストールする。

$ sudo apt update
$ sudo apt install watchdog

(3)/etc/watchdog.conf に以下を追記。

watchdog-device = /dev/watchdog
watchdog-timeout = 15
max-load-1 = 24
interface = wlan0

これでフリーズしたら 15 秒後に再起動するようになる。

最後の行は WiFi に問題が起きた場合も再起動するようになる設定だ。

(4)サービスを有効化する。

$ sudo systemctl enable watchdog
$ sudo systemctl start watchdog
$ sudo systemctl status watchdog

status で以下のように表示される。WiFi の監視はうまくできていないということだろうか。とりあえず放置しておこう。

watchdog[678]: device wlan0 did not receive anything since last check

(5)以下の fork bomb というコマンドを実行し、意図的にフリーズを発生させてみる。

$ sudo bash -c ':(){ :|:& };:'

15 秒ほどで再起動した。

なお、他のデバイス(buster をインストールした Raspberry Pi 4 Model B や、bullseye をインストールした Raspberry Pi 3 Model B)では4のエラーは表示されなかった。

参考:
Running forever with the Raspberry Pi Hardware Watchdog
https://diode.io/raspberry%20pi/running-forever-with-the-raspberry-pi-hardware-watchdog-20202/

Raspberry PiにハードウェアWatchdogを設定してみましょう | CANDY LINE Blog
https://candy-line.tumblr.com/post/167284883068/raspberry-pi%E3%81%AB%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2watchdog%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%82%87%E3%81%86

【WatchDogTimer】Raspberry Pi4サーバがフリーズ(停止)した場合に自動再起動する方法【HeartBeat】
https://debimate.jp/2020/11/28/%E3%80%90watchdogtimer%E3%80%91raspberry-pi4%E3%82%B5%E3%83%BC%E3%83%90%E3%81%8C%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BA%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AB%E8%87%AA%E5%8B%95/


この記事が気に入ったらサポートをしてみませんか?