Mythtv Tip: Script to Babysit the Backend

I’ve been running a simple cron task every minute to restart my mythtv backend if it crashes but it wasn’t good enough. I tried using monit but it seems to think the backend is down when it is not and restarts it several times during a recording.

This post from the knoppmyth forums includes a nice script to take care of this along with instructions:

  • If it sees the backend running with a non-defunct process ID, it just exits.
  • If it doesn’t see the backend, and none of the following conditions apply, it’ll re-start it.

Exceptions:
  • mythfrontend is down (you’re probably doing some other maintenance)
  • mythbackup is running
  • mythrestore is running

You can easily extend it to add exceptions too.

Installation:
From a directory such as /tmp, as root:

Code:
wget http://www.thornsoft.com/Misc/babysit_backend.sh
cp babysit_backend.sh /usr/local/bin
chmod +x /usr/local/bin/babysit_backend.sh

run: babysit_backend.sh

It should exit with no messages, if the backend is running. Otherwise it’ll restart it.

Suggested usage - add this line to crontab:

Code:
* * * * * /usr/local/bin/babysit_backend.sh >>/var/log/mythtv/babysit_backend.log 2>&1