blob: e5917f98875ba180968391a28e168a7b179611b6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#!/bin/bash
if which pulse-session; then
XBMC="pulse-session xbmc --standalone \"$@\""
else
XBMC="xbmc --standalone \"$@\""
fi
LOOP=1
CRASHCOUNT=0
LASTSUCCESSFULSTART=$(date +%s)
ulimit -c unlimited
while (( $LOOP ))
do
$XBMC
RET=$?
NOW=$(date +%s)
if (( ($RET >= 64 && $RET <=66) || $RET == 0 )); then # clean exit
LOOP=0
else # crash
DIFF=$((NOW-LASTSUCCESSFULSTART))
if (($DIFF > 60 )); then # Not on startup, ignore
LASTSUCESSFULSTART=$NOW
CRASHCOUNT=0
else # at startup, look sharp
CRASHCOUNT=$((CRASHCOUNT+1))
if (($CRASHCOUNT >= 3)); then # Too many, bail out
LOOP=0
echo "XBMC has exited uncleanly 3 times in the ${DIFF}s. Something is probably wrong"
fi
fi
fi
done
|