summaryrefslogtreecommitdiff
path: root/runvdr
diff options
context:
space:
mode:
Diffstat (limited to 'runvdr')
-rwxr-xr-xrunvdr36
1 files changed, 31 insertions, 5 deletions
diff --git a/runvdr b/runvdr
index 5ec3458..afd645f 100755
--- a/runvdr
+++ b/runvdr
@@ -1,18 +1,44 @@
#!/bin/sh
+# runvdr: Loads the DVB driver and runs VDR
+#
+# If VDR exits abnormally, the driver will be reloaded
+# and VDR restarted.
+#
+# Set the environment variable VDRUSR to the user id you
+# want VDR to run with. If VDRUSR is not set, VDR will run
+# as 'root', which is not necessarily advisable.
+#
+# Since this script loads the DVB driver, it must be started
+# as user 'root'.
+#
+# 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 1.8 2001/07/27 07:35:19 kls Exp $
+
DVBDIR="../DVB/driver"
VDRPRG="./vdr"
-VDRCMD="$VDRPRG -w 60"
+VDRCMD="$VDRPRG -w 60 $*"
+LSMOD="`/sbin/lsmod | grep -w '^dvb' | wc -l`"
KILLPROC="/sbin/killproc -TERM"
+# Load driver if it hasn't been loaded already:
+if [ $LSMOD -eq 0 ] ; then
+ (cd $DVBDIR; make insmod)
+ fi
+
while (true) do
-# (cd $DVBDIR; make reload)
-# sleep 3
- $VDRCMD
- if test $? -ne 1; then exit; fi
+ su -c "$VDRCMD" $VDRUSR
+ if test $? -eq 0; then exit; fi
date
echo "restarting VDR"
$KILLPROC $VDRPRG
sleep 10
+ (cd $DVBDIR; make rmmod; make insmod)
+ date
done