From c62da08102379443b51de5c2c5fe0f0ecd054bc6 Mon Sep 17 00:00:00 2001 From: Gregor Fuis Date: Mon, 27 Feb 2012 20:38:29 +0100 Subject: [PATCH] hts-tvheadend: add while loop for restarting tvheadend if it crashes --- .../multimedia/hts-tvheadend/changelog.txt | 1 + .../hts-tvheadend/source/bin/tvheadend.start | 19 ++++++++++++++++--- .../hts-tvheadend/source/bin/tvheadend.stop | 5 +++++ .../source/sleep.d/tvheadend.power | 6 ------ 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/packages/addons/service/multimedia/hts-tvheadend/changelog.txt b/packages/addons/service/multimedia/hts-tvheadend/changelog.txt index dba1578c2c..69c97804ba 100644 --- a/packages/addons/service/multimedia/hts-tvheadend/changelog.txt +++ b/packages/addons/service/multimedia/hts-tvheadend/changelog.txt @@ -1,5 +1,6 @@ 2.0.7 - enable unloading/loading dvb modules on suspend/resume +- add while loop for restarting tvheadend if it crashes 2.0.6 - add possibilty to start / stop addon from addon manager with enable / disable diff --git a/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.start b/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.start index 55e375bdf8..4e88f67817 100755 --- a/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.start +++ b/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.start @@ -22,6 +22,9 @@ . /etc/profile +LOCKDIR="/var/lock/" +LOCKFILE="tvheadend.disabled" + ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.hts-tvheadend" ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend" ADDON_BIN="tvheadend" @@ -40,7 +43,7 @@ if [ ! -f "$XMLTV_SETTINGS_FILE" ]; then cp $ADDON_DIR/xmltv-config $XMLTV_SETTINGS_FILE fi -TVHEADEND_ARG="-f -C -s -u root -g video -c $ADDON_HOME" +TVHEADEND_ARG="-C -s -u root -g video -c $ADDON_HOME" mkdir -p $ADDON_HOME if [ ! $(pidof $ADDON_BIN) ]; then @@ -52,5 +55,15 @@ mkdir -p $ADDON_HOME . $driver_dvb done - $ADDON_BIN $TVHEADEND_ARG &>$LOG_FILE - fi \ No newline at end of file + if [ -f "$LOCKDIR/$LOCKFILE" ] ; then + rm -rf "$LOCKDIR/$LOCKFILE" + fi + + while [ true ] ; do + if [ -f "$LOCKDIR/$LOCKFILE" ] ; then + break + fi + $ADDON_BIN $TVHEADEND_ARG &>$LOG_FILE + sleep 1 + done & + fi diff --git a/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.stop b/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.stop index b1dd1471cc..5cdb503e65 100755 --- a/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.stop +++ b/packages/addons/service/multimedia/hts-tvheadend/source/bin/tvheadend.stop @@ -22,8 +22,13 @@ . /etc/profile +LOCKDIR="/var/lock/" +LOCKFILE="tvheadend.disabled" + ADDON_BIN="tvheadend" if [ $(pidof $ADDON_BIN) ];then + mkdir -p "$LOCKDIR" + touch "$LOCKDIR/$LOCKFILE" killall $ADDON_BIN fi diff --git a/packages/addons/service/multimedia/hts-tvheadend/source/sleep.d/tvheadend.power b/packages/addons/service/multimedia/hts-tvheadend/source/sleep.d/tvheadend.power index 1e58767165..8a5bf9fc3e 100755 --- a/packages/addons/service/multimedia/hts-tvheadend/source/sleep.d/tvheadend.power +++ b/packages/addons/service/multimedia/hts-tvheadend/source/sleep.d/tvheadend.power @@ -22,9 +22,6 @@ . /etc/profile -LOCKDIR="/var/lock/" -LOCKFILE="tvheadend" - ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.hts-tvheadend" ADDON_SETTINGS="$ADDON_HOME/settings.xml" REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"` @@ -33,8 +30,6 @@ case "$1" in hibernate|suspend) if [ $(pidof tvheadend) ];then progress "Shutting down HTS TVHeadend for suspending..." - mkdir -p "$LOCKDIR" - touch "$LOCKDIR/$LOCKFILE" tvheadend.stop for module in $REMOVE_MODULES ; do rmmod -w $module @@ -49,7 +44,6 @@ case "$1" in done progress "Restarting HTS TVHeadend for wakeup..." tvheadend.start - rm -rf "$LOCKDIR/$LOCKFILE" fi ;;