Raspberry Pi フリーズ対策!ウォッチドッグで自動再起動する方法【2025年版】

IT

ある日、もぐTech研究所の地下深く。モグラ先生はラズパイの前でうなっています。

モグラ先生:あれれ? またフリーズしてる! これじゃあ海外からじゃ再起動できないよ〜🥲

そこで今回は、ハードウェアウォッチドッグを使ってラズパイが勝手に再起動してくれる仕組みを「掘って」みました。⛏️


🛒もぐTechおすすめ!「まずはラズパイを手に入れよう」

モグラ先生:今回の掘削は ラズパイ が主役!まだ持っていない人は、性能と予算に合わせて選んでみてね。🐾

モグラ先生:Pi 5 は発熱がスゴいから別売りクーラーファンも忘れずに!🌀


ウォッチドッグって何? 🐕‍🦺

ウォッチドッグ(Watchdog Timer)は、**「ラズパイが生きてるか定期的に確認して、反応がなければリセットボタンを押してくれる番犬」**のようなもの。
フリーズ→自動再起動までをハードウェアが面倒見てくれるので、遠隔運用の命綱になります。 (Mitigating hardware/firmware/driver instability on the Raspberry Pi)

モグラ先生:簡単に言うと「わんこが噛みつく前にラズパイが応答しないと強制的に目覚ましドッカン💥」だよ!


掘削ルート全体図 ⛏️

  1. /boot/config.txt でウォッチドッグを有効化
  2. デバイスが見えるか確認
  3. watchdog パッケージをインストール
  4. /etc/watchdog.confお好み調整
  5. systemd でサービスを有効化
  6. ストレステストで自動再起動を確認

では順番に掘っていきましょう!🐾


1️⃣ /boot/config.txt でウォッチドッグをオン!

sudo nano /boot/config.txt

# 末尾か [all] セクションに追加
dtparam=watchdog=on

保存したら再起動。

小さな穴掘りポイント
モグラ先生:Raspberry Pi 5 でもこの一行は変わらないよ!Bookworm 64bit でもOK🪹 (watchdog on 64 bit bookworm. – Raspberry Pi Forums)


2️⃣ ウォッチドッグデバイスを確認 🧐

ls /dev/watchdog*
# => /dev/watchdog  /dev/watchdog0 が見えれば成功!

3️⃣ watchdog パッケージをインストール 🛠️

sudo apt update
sudo apt install watchdog

インストールすると自動で watchdog.service が生成されます。 (Mitigating hardware/firmware/driver instability on the Raspberry Pi)

小さな穴掘りポイント
モグラ先生:古い手順だと /etc/systemd/system.conf をいじる方法もあるけど、公式は /etc/watchdog.conf 推奨になったよ!


4️⃣ /etc/watchdog.conf をチューニング 🎛️

sudo nano /etc/watchdog.conf

watchdog-device = /dev/watchdog
watchdog-timeout = 15    # 秒数(要再起動で反映)
max-load-1      = 24     # 負荷が異常に高いとき
min-memory      = 1      # 空きRAM(MB)が1未満でリブート
# その他ネットワーク監視なども追加OK

モグラ先生:watchdog-timeout < /etc/modprobe.d/bcm2835-wdt.confheartbeat にすると矛盾しちゃうから注意だよ!


5️⃣ systemd でサービスを起動 🚀

sudo systemctl enable --now watchdog
sudo systemctl status watchdog

緑の “active (running)” が出れば準備完了。


6️⃣ テスト!掘った穴に落ちても復活するか? 🧪

フォークボムで強制フリーズ(危険⚠️)

:(){ :|:& };:

数十秒後に自動再起動すれば合格。怖い場合は stress-ng で CPU 負荷だけ掛けてもOK。

落とし穴!
モグラ先生:フォークボムはSSH が閉じて何もできなくなるから、現地で電源抜ける環境でやろうね💦


よくあるQ&A 🎤

疑問サクッと回答
Pi が再起動ループする…watchdog-timeout が短すぎる or 負荷設定が厳しすぎ。まず watchdog.service を停止して設定見直し。
/dev/watchdog が無い!dtparam=watchdog=on が反映されてない。sudo rpi-eeprom-update → 再起動で解決することも。
再起動時にSDが壊れない?電源品質が悪いとリブート連打でSDダメージ。UPSか高品質アダプタ推奨。

まとめ 📝

  • ウォッチドッグは“番犬”:フリーズ知らずの安心運用
  • 2025年現在、Bookworm + Raspberry Pi 5 でも同じ手順でOK
  • 設定ファイルは /etc/watchdog.conf に一本化でスッキリ
  • 仕上げにストレステストで掘った穴チェック

モグラ先生:これで海外出張中でもラズパイ君はセルフ蘇生! みんなも試してみてね👋

タイトルとURLをコピーしました