raspberry piで稼働しているhomebridge使ってエアコンやsesameやroombaをhomekitに追加し運用している。
ただ、ネットワークの遅延や追加pluginの不具合でたまにhomebridgeが停止してしまい、いざと言う時homekitから操作できなくて 家族から苦情がといった状況が発生している。
そのため、raspberry pi 上にプロセス監視と自動復旧の仕組みを入れて解消をはかる。
ツールの導入
プロセス監視と継続実行のツールとしてsupervisorは使ったことがあったので 別途monitというツールで実施。
- monitのインストール
apt-get install monit
monitの設定
- homebridge監視用configの作成 homebridgeのwikiのHomebridge autostart at boot (init.d) on Ubuntu (linux) 導入前提の設定
# /etc/monit/conf.d/homebridge.conf
check process homebridge with pidfile "/var/run/homebridge.pid"
start program = "/etc/init.d/homebridge start"
stop program = "/etc/init.d/homebridge stop"
if 10 restarts within 10 cycles then unmonitor
monint起動
sudo systemctl enable monit
sudo systemctl start monit
プロセス停止時のテスト
homebridgeを停止すると以下のようなログが出てhomebridgeが起動
# /var/log/monit.log
[JST Jul 27 09:24:03] error : 'homebridge' process is not running
[JST Jul 27 09:24:03] info : 'homebridge' trying to restart
[JST Jul 27 09:24:03] info : 'homebridge' start: service