| #!/sbin/runscript |
| # Copyright 1999-2012 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| description="MythTV backend recording daemon" |
| extra_started_commands="resched upnprebuild" |
| description_resched="Forces the recording scheduler to update" |
| description_upnprebuild="Rebuilds the UPnP media cache" |
| |
| MYTHBACKEND_OPTS=${MYTHBACKEND_OPTS:-"${MYTHBACKEND_OPTS}"} |
| MYTHBACKEND_VERBOSE=${MYTHBACKEND_VERBOSE:-"general"} |
| MYTHBACKEND_LOGGING=${MYTHBACKEND_LOGGING:-"files"} |
| |
| name="MythTV backend" |
| command="/usr/bin/mythbackend" |
| pidfile="/run/mythtv/mythbackend.pid" |
| start_stop_daemon_args="--pidfile ${pidfile} --user mythtv:video" |
| command_args="--daemon --pidfile ${pidfile} --verbose ${MYTHBACKEND_VERBOSE} ${MYTHBACKEND_OPTS}" |
| |
| depend() { |
| # mythbackend doesn't need to run on the same machine that |
| # mysql runs on. so its use for that reason |
| use logger net.lo mysql LCDd |
| } |
| |
| start_pre() { |
| case "${MYTHBACKEND_LOGGING}" in |
| database) logging="--enable-dblog" ;; |
| syslog\ *) logging="--${MYTHBACKEND_LOGGING}" ;; |
| files) logging="--logpath /var/log/mythtv" ;; |
| console) logging="--nologserver" ;; |
| *) |
| eerror "Invalid MYTHBACKEND_LOGGING value" |
| exit 1 |
| ;; |
| esac |
| |
| #fixes for bug #101308 |
| unset DISPLAY |
| unset SESSION_MANAGER |
| |
| # Work around any strange permissions that may be on these files. |
| [ "x${MYTHBACKEND_LOGGING}" = "xfiles" ] && \ |
| checkpath --directory --owner mythtv:video --mode 0775 /var/log/mythtv |
| checkpath --directory --owner mythtv:video --mode 0775 /home/mythtv |
| checkpath --directory --owner mythtv:video --mode 0750 /run/mythtv |
| } |
| |
| start() { |
| ebegin "Starting ${name}" |
| start-stop-daemon --start ${start_stop_daemon_args} --exec ${command} \ |
| -- ${command_args} ${logging} |
| eend $? |
| } |
| |
| stop() { |
| ebegin "Stopping ${name}" |
| start-stop-daemon --stop --retry 10 --progress --pidfile ${pidfile} |
| eend $? |
| } |
| |
| resched() { |
| ebegin "Updating the recording scheduler" |
| ${command} --resched |
| eend $? |
| } |
| |
| upnprebuild() { |
| ebegin "Rebuilding UPnP media cache" |
| ${command} --upnprebuild |
| eend $? |
| } |