# Example /etc/monitrc for FHEM
#

# REQUIRED PREPARATION:
#
# mkdir -p /var/run/fhem
# chown fhem:fhem /var/run/fhem
# echo "attr global pidfilename /var/run/fhem/fhem.pid" >> /opt/fhem/fhem.cfg
# echo "define cmd_knock cmdalias knock AS { \"hello.\" }" >> /opt/fhem/fhem.cfg
# echo "attr cmd_knock comment Monit process monitoring" >> /opt/fhem/fhem.cfg
# /usr/local/bin/perl fhem.pl 7072 shutdown restart

set daemon 60
set log syslog
set httpd port 2812 and
  allow localhost
  allow admin:monit

# check process 00_SONOS.pm matching 00_SONOS.pm
#   start = "/bin/sh -c 'cd /opt/fhem/FHEM; /usr/local/bin/perl 00_SONOS.pm 4711 &'" as uid "fhem" and gid "fhem"
#   stop = "/bin/sh -c '/bin/pkill -f 00_SONOS.pm'" as uid "fhem" and gid "fhem"
#   if cpu usage > 90% for 10 cycles then restart
#   if 5 restarts with 5 cycles then timeout

check process fhem.pl with pidfile /var/run/fhem/fhem.pid
  start = "/bin/sh -c 'cd /opt/fhem; /usr/local/bin/perl fhem.pl fhem.cfg'" as uid "fhem" and gid "fhem"
  stop = "/bin/sh -c 'cd /opt/fhem; /usr/local/bin/perl fhem.pl 7072 shutdown || kill -9 `cat /var/run/fhem/fhem.pid`'" as uid "fhem" and gid "fhem"
  if failed host 127.0.0.1 port 7072 with send "knock\n" expect "hello." timeout 20 seconds then restart
  if cpu usage > 90% for 10 cycles then restart
  if 5 restarts with 5 cycles then timeout
