From 4306db05c5701fdedd31d8808096894d7867d137 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 27 Feb 2012 11:47:24 +0200 Subject: [PATCH 1/2] vdr-addon: restart vdr service on crash, etc.. - this way vdr service should act as "real" service * remove "--daemon" arg * run vdr in an endless loop * if /var/lock/vdr.disabled exists (created by vdr.stop) exit the loop * remove the lock file on clean start --- .../multimedia/vdr-addon/source/bin/vdr.start | 16 ++++++++++++++-- .../multimedia/vdr-addon/source/bin/vdr.stop | 5 +++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start index 040164bf52..775cc7304a 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start @@ -22,6 +22,9 @@ . /etc/profile +LOCKDIR="/var/lock/" +LOCKFILE="vdr.disabled" + ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon" ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.vdr-addon" LOG_FILE="$ADDON_HOME/service.log" @@ -31,7 +34,7 @@ ADDON_CONFIG_DIR="$ADDON_HOME/config" ADDON_PLUGIN_DIR="$ADDON_DIR/plugin" ADDON_VIDEO_DIR="$HOME/videos" -VDR_ARG="--daemon -g /tmp --no-kbd --log=3 --port=0" +VDR_ARG="-g /tmp --no-kbd --log=3 --port=0" VDR_ARG="$VDR_ARG --config=$ADDON_CONFIG_DIR" VDR_ARG="$VDR_ARG --lib=$ADDON_PLUGIN_DIR" VDR_ARG="$VDR_ARG --video=$ADDON_VIDEO_DIR" @@ -66,5 +69,14 @@ if [ ! $(pidof vdr.bin) ];then . $driver_dvb done - LANG=en_US.UTF-8 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" vdr.bin $VDR_ARG &>$LOG_FILE + if [ -e "$LOCKDIR/$LOCKFILE" ] ; then + rm -rf "$LOCKDIR/$LOCKFILE" + fi + while [ true ] ; do + if [ -e "$LOCKDIR/$LOCKFILE" ] ; then + break + fi + LANG=en_US.UTF-8 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" vdr.bin $VDR_ARG &>$LOG_FILE + sleep 1 + done & fi diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.stop b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.stop index 59d121cb37..3bfe68e616 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.stop +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.stop @@ -22,7 +22,12 @@ . /etc/profile +LOCKDIR="/var/lock/" +LOCKFILE="vdr.disabled" + if [ $(pidof vdr.bin) ];then + mkdir -p "$LOCKDIR" + touch "$LOCKDIR/$LOCKFILE" killall vdr.bin fi From 045a596371b2f53bb21d27aa5032d88e6ce3ce35 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 27 Feb 2012 20:01:21 +0200 Subject: [PATCH 2/2] vdr-addon: vdr.start: use -f to check file existence instef of -e --- .../addons/service/multimedia/vdr-addon/source/bin/vdr.start | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start index 775cc7304a..2b2f14a3e5 100755 --- a/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start +++ b/packages/addons/service/multimedia/vdr-addon/source/bin/vdr.start @@ -69,11 +69,11 @@ if [ ! $(pidof vdr.bin) ];then . $driver_dvb done - if [ -e "$LOCKDIR/$LOCKFILE" ] ; then + if [ -f "$LOCKDIR/$LOCKFILE" ] ; then rm -rf "$LOCKDIR/$LOCKFILE" fi while [ true ] ; do - if [ -e "$LOCKDIR/$LOCKFILE" ] ; then + if [ -f "$LOCKDIR/$LOCKFILE" ] ; then break fi LANG=en_US.UTF-8 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" vdr.bin $VDR_ARG &>$LOG_FILE