ラズパイ安定化対策-フリーズ対応編

はじめに

当ページでは、ラズパイ(Raspberry Pi)をサーバとして利用する方法を取り上げています。
しかし、もしラズパイがフリーズ(応答なし)になってしまったら、どうしたら良いのでしょうか?
それも日本に置いているラズパイがフリーズした場合、海外に住んでいると物理的に再起動するのはとても大変ですね。親か兄弟、友達にお願いするしかありません。
今回は、フリーズした時に、自動再起動させる方法を紹介します。
ラズパイを長期間電源を入れて使う場合は、ぜひ導入を考えてみてください。

どのように行うのか?

実はそういう仕組みが、サーバ系のマシンには備わっています。ウォッチドッグタイマー(Watchdogt timer)という仕組みです。まあ犬に見張らせるみたいな名前になっています。
ウォッチドッグタイマーは、対象のコンピュータが正常に動いているか定期的にチェックして、もしフリーズしていたら、再起動する仕組みになっています。
これを入れておけば、もし何らかの理由でラズパイがフリーズしても、自動復旧してくれるという訳です。

インストール方法

※SSHで接続している事を前提で進めて行きます。もし繋ぎ方が分からない方は、下記のページを参考にしてください。

1.Watchdogを有効化設定を行います。

以下のファイルを編集し、一行を追加します。

sudo nano /boot/config.txt
dtparam=watchdog=on

2.カーネルモジュールの設定を行います。

以下のファイルを新規作成します。
(下記の設定では10秒以内にハートビートが来ないときは、システムが異常であると判断する。)

sudo nano /etc/modprobe.d/bcm2835-wdt.conf
options bcm2835_wdt heartbeat=10 nowayout=0

3.ハートビートを行う機能の有効化設定を行います。

以下のファイルを編集し、一行を追加します。
(5秒以内の間隔でハートビートを行う。)

sudo nano /etc/systemd/system.conf
RuntimeWatchdogSec=5

4.再起動します。

sudo reboot

動作確認方法

想定しているように動作するかテストしてみましょう。

1.まずウォッチドッグタイマーが動作しているかチェックします。

dmesg | grep bcm2835-wdt

2.意図的にフリーズさせてみたいと思います。下記のフォークボム(フォーク爆弾)コマンドを実行してみましょう。これで自動的に再起動されればOKです。

:(){ :|:& };:

まとめ

いかがだったでしょうか?ものの数分で設定が出来てしまいますね。
もしもの為にぜひ設定をしてみてください。そうすれば安定してラズパイもサーバとして利用できると思います。