File runvdr-extreme-exitcode.patch of Package runvdr-extreme-systemd
Index: b/runvdr
===================================================================
--- a/runvdr
+++ b/runvdr
@@ -845,10 +845,11 @@ Do_DVBLOAD
SHORTRUNTIMES=0
# Initialize for now
PROXYFILE=
+EXITCODE=1
while (true) do
echo -n "Starting VDR at " ; $DATE
# Trap some signals sent to this script
trap "SIG=HUP" SIGHUP
@@ -930,10 +931,11 @@ while (true) do
fi
case "$SIG" in
HUP | INT | QUIT | TERM)
echo -n "Terminating by request at " ; $DATE
+ EXITCODE=0
# Kill remaining VDR traces
WaitKill $PID $VDRPRG $TERMTIMEOUT $KILLTIMEOUT
# Wait for X server to be down too
@@ -980,10 +982,11 @@ while (true) do
[ "$XSERVERPID" ] && wait "$XSERVERPID"
# Unload DVB drivers requested?
[ -n "$DVBUNLOADONEXIT" ] && Do_DVBUNLOAD
+ EXITCODE=$RET
# and exit
break
fi
if [ $SHORTRUNTIMES -gt "$MAXRESTARTS" ] ; then
echo -n "Terminating because VDR died $SHORTRUNTIMES times in a row quickly at " ; $DATE
@@ -1033,5 +1036,8 @@ done
# Clean up PID file
[ -n "$RUNVDRPID" ] && rm $RUNVDRPID 2>/dev/null
# Clean up proxy file, if used
[ -n "$PROXYFILE" ] && rm $PROXYFILE 2>/dev/null
+
+# exit code for e.g. systemd
+exit $EXITCODE