お兄ちゃん!
Raspbrerry Pi が
応答しないと思ったら
ハングアップしていたんだ!
こういう場合に自動で再起動して
くれたりすると助かるんだけど…
実はそういう機能があるんだ!
「ウォッチドッグ(watchdog)」
と呼ばれるよ
Raspberry Pi には
この機能があるから
設定すれば利用できるよ!
でも…
ハングアップしているのに
どうしてその状態から
再起動できるのかな?
ウォッチドッグは
「ハードウェア」で
実装されているんだ
チップなどに内蔵されていて
OS から独立しているよ!
なるほど!
それなら OS がハングアップしても
ウォッチドッグは動き続けられるね
ウォッチドッグは中で
タイマーが動いているんだ
タイマーが一定時間を過ぎると
ハードウェアを再起動するように
なっているよ
それなら一定時間が来たら
いつも再起動しちゃうよ?
そこで OS はウォッチドッグへ
定期的にタイマーをリセットする
信号を送っているんだ
なるほど!
OS がハングアップしちゃうと
信号が送られなくなって
再起動するという仕組みなんだね!
まずはウォッチドッグの
機能を有効にしよう
Raspberry Pi の機能を
管理している設定ファイルは
/boot/firmware/config.txt
だよ
そこの [all]
セクションに
以下の内容を記述しよう
dtparam=watchdog=on
これは以下のコマンドで実行できるよ
sudo sed -i.dist \
'/^\[all\]'/a dtparam=watchdog=on' \
/boot/firmware/config.txt
うん!実行したよ!
では内容を確認してみよう!
cat /boot/firmware/config.txt
お兄ちゃんのコマンドを信頼しているけど確認は大事だよね!
...
[all]
dtparam=watchdog=on
...
うん!ちゃんと記述があるよ!
ウォッチドッグ有効化には再起動が必要なんだまだ設定することが残っているからその設定を終えてから再起動するね
ウォッチドッグの設定ファイルは
/etc/systemd/system.conf
だよ中身を見てみよう!cat /etc/systemd/system.conf
Watchdog
という言葉が入っている設定がいくつかあるねRuntimeWatchdogSec
という項目がここでは
RuntimeWatchdogSec
のコメントアウト #
を外して値を off
から 10
に変更しよう#RuntimeWatchdogSec=off
RuntimeWatchdogSec=10
この変更は以下のコマンドで実現可能だよ
sudo sed -i.dist \
's/^#\(RuntimeWatchdogSec\)=.*/\1=10/' \
/etc/systemd/system.conf
うん!こっちも実行したよ!
ちゃんとそのような設定があるか確認してみよう!
grep '^RuntimeWatchdogSec=' /etc/systemd/system.conf
grep
で指定された設定を検索するんだね!RuntimeWatchdogSec=10
うん!ちゃんと設定があったよ!
後は再起動すればウォッチドッグが動き始めるよ!
sudo systemctl reboot
今回はウォッチドッグの仕組みと設定を学んだよ!
特にヘッドレス運用している場合はハングアップに気づくのが遅れがちになるよその対策になる機能なので有効に活用しよう!