Debian init.d mythbackend

From MythTV

Jump to: navigation, search

An init.d script for launching mythbackend using the System V init in Debian.

Script

/etc/init.d/mythbackend

##############################################################################
#! /bin/sh
#
# mythtv-server MythTV capture and encoding backend
#
# Based on:
#
# skeleton      example file to build /etc/init.d/ scripts.
#               This file should be used to construct scripts for /etc/init.d.
#
#               Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#               Modified for Debian GNU/Linux
#               by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#               and again by Steve Adeff <adeffs.mythtv@gmail.com>
#
# Version:      @(#)skeleton  1.9.1  08-Apr-2002  miquels@cistron.nl
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
LOCATION=/usr/local/bin
DAEMON=$LOCATION/mythbackend
NAME="mythbackend"
DESC="MythTV Backend"

test -x $DAEMON || exit 0

set -e

USER=mythtv
RUNDIR=/var/run/mythtv
LOGFILE=/var/log/mythtv/mythbackend.log
ARGS="--daemon --logfile $LOGFILE --pidfile $RUNDIR/$NAME.pid"
EXTRA_ARGS="-v important"
NICE=0

if [ -f /etc/mythtv/mythbackend ]; then
  . /etc/mythtv/mythbackend
fi

ARGS="$ARGS $EXTRA_ARGS"

mkdir -p $RUNDIR
chown -R $USER $RUNDIR


case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
##       For those with firewire this will reset things before the backend starts. 
##       Should replace with keep_dct_alive.sh script at some point.
#       firewire_tester -R
#       firewire_tester -B -p 0 -n 0 -r 10
#       firewire_tester -B -p 0 -n 1 -r 10
#       firewire_tester -B -p 0 -n 2 -r 10
        start-stop-daemon --start --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --nicelevel $NICE --exec $DAEMON -- $ARGS
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME "
        start-stop-daemon --stop --oknodo --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --exec $DAEMON -- $ARGS
        echo "."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: $NAME"
        start-stop-daemon --stop --oknodo --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --exec $DAEMON -- $ARGS
        echo "."
        sleep 3
        start-stop-daemon --start --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --nicelevel $NICE --exec $DAEMON -- $ARGS
        echo "."
        ;;
  *)
        N=/etc/init.d/$NAME
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
##############################################################################

A similar script to this was used in the mythtv deb package. It causes errors like: "errror creating /.qt" This error in itself seems benign. The cause of this error is the HOME environment setting not being set correctly. This caused more problems for tv listings updates that mythtv calls, or any other program that mythtv calls and assumes it can write files to the home directory.

A simple fix, put

HOME=/home/mythtv

after the USER=mythtv line.

Personal tools