summaryrefslogtreecommitdiff
path: root/runvdr.template
diff options
context:
space:
mode:
Diffstat (limited to 'runvdr.template')
-rwxr-xr-xrunvdr.template71
1 files changed, 71 insertions, 0 deletions
diff --git a/runvdr.template b/runvdr.template
new file mode 100755
index 0000000..8eb21cf
--- /dev/null
+++ b/runvdr.template
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# runvdr: Loads the DVB driver and runs VDR
+#
+# If VDR exits abnormally, the driver will be reloaded
+# and VDR restarted.
+#
+# In order to actually use this script you need to implement
+# the functions DriverLoaded(), LoadDriver() and UnloadDriver()
+# and maybe adjust the VDRPRG and VDRCMD to your particular
+# requirements.
+#
+# Since this script loads the DVB driver, it must be started
+# as user 'root'. Add the option "-u username" to run VDR
+# under the given user name.
+#
+# Any command line parameters will be passed on to the
+# actual 'vdr' program.
+#
+# See the main source file 'vdr.c' for copyright information and
+# how to reach the author.
+#
+# $Id: runvdr 2.1 2010/01/17 12:39:27 kls Exp $
+
+VDRPRG="./vdr"
+
+VDROPTIONS="-w 60"
+# For other options see manpage vdr.1
+
+VDRPLUGINS=""
+# You will need to select your output device plugin if you want
+# to use VDR to watch video. For instance, for a "Full Featured"
+# DVB card that would be
+# VDRPLUGINS="-P dvbsddevice"
+
+VDRCMD="$VDRPRG $VDROPTIONS $VDRPLUGINS $*"
+
+KILL="/usr/bin/killall -q -TERM"
+
+# Detect whether the DVB driver is already loaded
+# and return 0 if it *is* loaded, 1 if not:
+function DriverLoaded()
+{
+ return 1
+}
+
+# Load all DVB driver modules needed for your hardware:
+function LoadDriver()
+{
+}
+
+# Unload all DVB driver modules loaded in LoadDriver():
+function UnloadDriver()
+{
+}
+
+# Load driver if it hasn't been loaded already:
+if ! DriverLoaded; then
+ LoadDriver
+ fi
+
+while (true) do
+ eval "$VDRCMD"
+ if test $? -eq 0 -o $? -eq 2; then exit; fi
+ echo "`date` reloading DVB driver"
+ $KILL $VDRPRG
+ sleep 10
+ UnloadDriver
+ LoadDriver
+ echo "`date` restarting VDR"
+ done