はじめに
当ページでは、ラズパイ(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です。
:(){ :|:& };:
まとめ
いかがだったでしょうか?ものの数分で設定が出来てしまいますね。
もしもの為にぜひ設定をしてみてください。そうすれば安定してラズパイもサーバとして利用できると思います。