raspberry piで稼働しているhomebridge使ってエアコンやsesameやroombaをhomekitに追加し運用している。

ただ、ネットワークの遅延や追加pluginの不具合でたまにhomebridgeが停止してしまい、いざと言う時homekitから操作できなくて 家族から苦情がといった状況が発生している。

そのため、raspberry pi 上にプロセス監視と自動復旧の仕組みを入れて解消をはかる。

ツールの導入

プロセス監視と継続実行のツールとしてsupervisorは使ったことがあったので 別途monitというツールで実施。

  • monitのインストール
apt-get install monit

monitの設定

# /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