diff options
Diffstat (limited to '')
-rw-r--r-- | tools/Linux/kodi-standalone.sh.in | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/Linux/kodi-standalone.sh.in b/tools/Linux/kodi-standalone.sh.in new file mode 100644 index 0000000..956e193 --- /dev/null +++ b/tools/Linux/kodi-standalone.sh.in @@ -0,0 +1,54 @@ +#!/bin/sh + +# Copyright (C) 2009-2015 Team XBMC +# http://kodi.tv +# +# 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, 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 XBMC; see the file COPYING. If not, write to +# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html + +prefix="@prefix@" +exec_prefix="@exec_prefix@" +bindir="@bindir@" +bin_name=@APP_NAME_LC@ +APP="${bindir}/${bin_name} --standalone $@" + +@XBMC_STANDALONE_SH_PULSE@ + +LOOP=1 +CRASHCOUNT=0 +LASTSUCCESSFULSTART=$(date +%s) + +while [ $LOOP -eq 1 ] +do + $APP + RET=$? + NOW=$(date +%s) + if [ $RET -ge 64 ] && [ $RET -le 66 ] || [ $RET -eq 0 ]; then # clean exit + LOOP=0 + else # crash + DIFF=$((NOW-LASTSUCCESSFULSTART)) + if [ $DIFF -gt 60 ]; then # Not on startup, ignore + LASTSUCESSFULSTART=$NOW + CRASHCOUNT=0 + else # at startup, look sharp + CRASHCOUNT=$((CRASHCOUNT+1)) + if [ $CRASHCOUNT -ge 3 ]; then # Too many, bail out + LOOP=0 + echo "${APP} has exited in an unclean state 3 times in the last ${DIFF} seconds." + echo "Something is probably wrong" + fi + fi + fi +done |