Fedora init.d mythbackend

From MythTV Official Wiki
Jump to: navigation, search


Author unknown
Description Starts the mythbackend process as a daemon after X and MySQL have started, in runlevel 5. This allows scheduled recordings to occur without manual intervention.
Supports


See, also, the RPM packaging information at:


Script.png /etc/rc.d/init.d/mythbackend

#!/bin/bash
#
# Rename this file to:
#
#    /etc/rc.d/init.d/mythbackend
#
###############################################################################
#
# chkconfig:   - 86 14
# pidfile:     /var/run/mythbackend.pid
# description: Starts the mythbackend process as a daemon after X and MySQL \
#              have started, in runlevel 5. This allows scheduled recordings \
#              to occur without manual intervention.
# processname: mythbackend
# config:      /etc/sysconfig/mythbackend
#
###############################################################################
#
# Copyright (c) by the MythTV Development Team.
#
# Derived from work by:
#
#     Michael Thomson <linux at m-thomson dot net>
#     Stu Tomlinson <stu at nosnilmot dot com>
#     Axel Thimm <axel.thimm at atrpms dot net>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
#
###############################################################################

# Default values to use if none are supplied in the config file.

# Running mythbackend as non-root requires you to ensure that audio/video
# devices used for recording have suitable user permissions. One way
# to achieve this is to modify existing or create new udev rules which
# assign these devices to a non-root group with rw permissions and add
# your mythbackend user to that group. Be aware that console.perms can
# also affect device permissions and may need additional configuration.
# Running as non-root may also introduce increased process latency.
#
# User who should start the mythbackend processes
    MBE_USER='root'

# Directory holding the mythbackend binary (empty means autodetect)
    MBE_DIR=''

# Name of mythbackend binary
    MBE_PROG='mythbackend'

# Startup options for mythbackend
    MBE_OPTIONS=''

# Directory holding the mythbackend log file
    LOG_DIR='/var/log/mythtv'

# Name of mythbackend log file
    LOG_FILE='mythbackend.log'

# Logging options for mythbackend (empty means '-v important,general')
    LOG_OPTS=''

###############################################################################

# Source function library.
    . /etc/init.d/functions

# Source config file if available
    if [ -f "/etc/sysconfig/mythbackend" ]; then
      . /etc/sysconfig/mythbackend
    fi

# Find the executable
    if [ ! -z "$MBE_DIR" ]; then
        MBE_BIN="$MBE_DIR/$MBE_PROG"
    else
        MBE_BIN=`which "$MBE_PROG" 2>/dev/null`
        if [ ! -f "$MBE_BIN" ]; then
            if [ -f "/usr/bin/$MBE_PROG" ]; then
                MBE_BIN="/usr/bin/$MBE_PROG"
            elif [ -f "/usr/local/bin/$MBE_PROG" ]; then
                MBE_BIN="/usr/local/bin/$MBE_PROG"
            fi
        fi
    fi

# Error messages
    if [ ! -f "$MBE_BIN" ]; then
        echo "Cannot find $MBE_PROG executable"
        exit 1
    elif [ ! -x "$MBE_BIN" ]; then
        echo "$MBE_PROG is not executable"
        exit 1
    elif [ ! -d "$LOG_DIR" ]; then
        echo "Log directory does not exist"
        exit 1
    fi

# Initialize the return variable
    RETVAL=0

###############################################################################

#
# Start the process
#
    start() {
    # Already running?
        if [ -f "/var/lock/subsys/$MBE_PROG" ]; then
            echo "$MBE_PROG is already running."
            return 0
        fi
 
   # Start
        echo -n $"Starting $MBE_PROG: "
        touch "/var/run/$MBE_PROG.pid"
        chown "$MBE_USER":"$MBE_USER" "/var/run/$MBE_PROG.pid"
        daemon --user "$MBE_USER" "$MBE_BIN"              \
               --daemon                                   \
               --logfile "$LOG_DIR/$LOG_FILE" "$LOG_OPTS" \
               --pidfile "/var/run/$MBE_PROG.pid"         \
               $MBE_OPTIONS
        RETVAL=$?
        [ $RETVAL = 0 ] && touch /var/lock/subsys/$MBE_PROG
        echo
        return $RETVAL
    }

#
# Stop the process
#
    stop() {
        echo -n $"Stopping $MBE_PROG: "
        killproc "$MBE_PROG"
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG} /var/run/${MBE_PROG}.pid
        echo
        return $RETVAL
    }


#
# Restart
#
    restart() {
        stop
        start
    }

###############################################################################

case "$1" in
start)
	start
	;;
stop)
	stop
	;;
restart)
	restart
	;;
condrestart)
	if [ -f "/var/lock/subsys/$MBE_PROG" ]; then
	    restart
	fi
	;;
status)
	status "$MBE_BIN"
        RETVAL=$?
	;;
*)
	echo "Usage: $0 {start|stop|restart|condrestart|status}"
	exit 1
esac

exit $RETVAL


Script.png /etc/sysconfig/mythbackend

#!/bin/bash
#
# Rename this file to:
#
#    /etc/sysconfig/mythbackend
#
###############################################################################
#
# Copyright (c) by the MythTV Development Team.
#
# Derived from work by:
#
#     Michael Thomson <linux at m-thomson dot net>
#     Stu Tomlinson <stu at nosnilmot dot com>
#     Axel Thimm <axel.thimm at atrpms dot net>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
#
###############################################################################
#
# Config variables for the mythbackend startup script, which is usually
# located in /etc/rc.d/init.d/mythbackend
#
# When the startup script is executed, it sources this file if it exists,
# otherwise it will fall back on default values.
#
# Leave variables commented out to use default values in init script
# (/etc/rc.d/init.d/mythbackend).
#
# To override defaults, uncomment the relevant variable definition and
# edit as required.
#

#
# User who should start the mythbackend processes
#
# Running mythbackend as non-root requires you to ensure that audio/video
# devices used for recording have suitable user permissions. One way
# to achieve this is to modify existing or create new udev rules which
# assign these devices to a non-root group with rw permissions and add
# your mythbackend user to that group. Be aware that console.perms can 
# also affect device permissions and may need additional configuration.
# Running as non-root may also introduce increased process latency.
#
# MBE_USER='root'

#
# Directory holding the mythbackend binary (empty means autodetect).
#
# MBE_DIR=''

#
# Name of mythbackend binary.
#
# MBE_PROG='mythbackend'

#
# Other startup options for mythbackend (see 'mythbackend --help' for a list).
#
# MBE_OPTIONS=''

#
# Directory holding the mythbackend log file
#
# LOG_DIR='/var/log/mythtv'

#
# Name of mythbackend log file.
#
# NOTE: If you are running as non-root take care to ensure the mythbackend user
# has permission to write to this log file.
#
# LOG_FILE='mythbackend.log'

#
# Logging options for mythbackend (see 'mythbackend -v help' for a list)
#
# LOG_OPTS=''