aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2007-05-30 11:57:38 +0000
committerMatthias Schwarzott <zzam@gentoo.org>2007-05-30 11:57:38 +0000
commit4c59777c91c3d1cdacc97472d44b99e73f4297d2 (patch)
tree0e2e5c334c6cad3e55ee9b9c380ed385f2351e2e
parentAdded some small binary to wait for a process to exit. (diff)
downloadgentoo-vdr-scripts-4c59777c91c3d1cdacc97472d44b99e73f4297d2.tar.gz
gentoo-vdr-scripts-4c59777c91c3d1cdacc97472d44b99e73f4297d2.tar.bz2
gentoo-vdr-scripts-4c59777c91c3d1cdacc97472d44b99e73f4297d2.zip
Removed sleeps for watchdogrestart. Removed logging by default for watchdog.
svn path=/gentoo-vdr-scripts/trunk/; revision=455
-rw-r--r--ChangeLog6
-rw-r--r--etc/conf.d/vdr.watchdogd7
-rwxr-xr-xetc/init.d/vdr12
-rwxr-xr-xusr/sbin/vdr-watchdogd10
-rw-r--r--usr/share/vdr/inc/rc-functions.sh7
-rw-r--r--usr/share/vdr/rcscript/watchdog-restart-20-modules.sh3
6 files changed, 26 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index e6b2706..45b7750 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for gentoo-vdr-scripts
# $Id$
+ 30 May 2007; Matthias Schwarzott <zzam@gentoo.org>
+ usr/share/vdr/rcscript/watchdog-restart-20-modules.sh,
+ etc/conf.d/vdr.watchdogd, etc/init.d/vdr, usr/sbin/vdr-watchdogd,
+ usr/share/vdr/inc/rc-functions.sh:
+ Removed sleeps for watchdogrestart. Removed logging by default for watchdog.
+
30 May 2007; Matthias Schwarzott <zzam@gentoo.org> Makefile,
+usr/bin/Makefile, +usr/bin/wait_on_pid.c, usr/sbin/vdr-watchdogd:
Added some small binary to wait for a process to exit.
diff --git a/etc/conf.d/vdr.watchdogd b/etc/conf.d/vdr.watchdogd
index 7b6e245..7cd1ac9 100644
--- a/etc/conf.d/vdr.watchdogd
+++ b/etc/conf.d/vdr.watchdogd
@@ -22,8 +22,5 @@
#WATCHDOG_RELOAD_DVB_MODULES="yes"
#
-# For debugging purposes; in which file should
-# the watchdog write a log
-# allowed values: names of files
-# default: only log to syslog
-#WATCHDOG_LOGFILE="/var/log/vdr-watchdogd"
+# debug watchdog - will create logfile in /tmp/vdrwatchdogd-log
+#DEBUG=1
diff --git a/etc/init.d/vdr b/etc/init.d/vdr
index 652330b..89a8fbc 100755
--- a/etc/init.d/vdr
+++ b/etc/init.d/vdr
@@ -85,13 +85,14 @@ start() {
}
stop() {
+ [ -z "${VDR_BIN}" ] && VDR_BIN=/usr/bin/vdr
load_functions stop
load_addons_prefixed pre-stop
ebegin "Stopping ${VDRNAME}"
# Use --name here to allow us to kill vdr even after a new emerge
- start-stop-daemon --stop --quiet --retry 15 --name vdr
+ start-stop-daemon --stop --quiet --retry 15 --exec ${VDR_BIN}
eend $? "Failed to stop vdr."
load_addons_prefixed post-stop
@@ -103,10 +104,11 @@ watchdogrestart() {
load_functions watchdogrestart
export WATCHDOG_RESTART="1"
- /etc/init.d/vdr pause
- sleep 2
- test_vdr_process && /bin/killall -9 vdr
- sleep 1
+ /etc/init.d/vdr --nodeps stop
+ if test_vdr_process; then
+ sleep 2
+ test_vdr_process && /bin/killall -9 vdr
+ fi
/etc/init.d/vdr zap
diff --git a/usr/sbin/vdr-watchdogd b/usr/sbin/vdr-watchdogd
index 3d18845..8a987e7 100755
--- a/usr/sbin/vdr-watchdogd
+++ b/usr/sbin/vdr-watchdogd
@@ -12,6 +12,13 @@
exec < /dev/null
exec >/dev/null 2>&1
+. /etc/conf.d/vdr.watchdogd
+if [ "${DEBUG}" == 1 ]; then
+ exec >/tmp/vdrwatchdogd-log 2>&1
+ date
+ set -x
+fi
+
log() {
logger -i -t vdrwatchdog -p local0.info "$@"
}
@@ -19,7 +26,8 @@ log() {
do_restart() {
log "restarting VDR"
/etc/init.d/vdr watchdogrestart
- /usr/bin/svdrpsend.pl mesg "Warning: vdr was restarted by watchdog."
+ log "VDR has been restarted"
+ /usr/bin/svdrpsend.pl mesg "Warning: vdr was restarted by watchdog." &
}
is_paused() {
diff --git a/usr/share/vdr/inc/rc-functions.sh b/usr/share/vdr/inc/rc-functions.sh
index a78ad62..8114eb6 100644
--- a/usr/share/vdr/inc/rc-functions.sh
+++ b/usr/share/vdr/inc/rc-functions.sh
@@ -14,8 +14,7 @@ include message-functions
: ${SCRIPT_DEBUG_LEVEL:=0}
SCRIPT_API=2
-pidof=/sbin/pidof
-test -x /bin/pidof && pidof=/bin/pidof
+pidof=pidof
. /etc/conf.d/vdr.watchdogd
ENABLE_EXTERNAL_WATCHDOG=${ENABLE_EXTERNAL_WATCHDOG:-no}
@@ -221,7 +220,6 @@ stop_watchdog() {
start_watchdog() {
if [ "${ENABLE_EXTERNAL_WATCHDOG}" = "yes" ]; then
- WATCHDOG_LOGFILE=${WATCHDOG_LOGFILE:-/dev/null}
ebegin "Starting vdr watchdog"
start-stop-daemon \
--start \
@@ -229,8 +227,7 @@ start_watchdog() {
--make-pidfile \
--pidfile /var/run/vdrwatchdog.pid \
--exec /usr/sbin/vdr-watchdogd \
- --name vdr-watchdogd \
- -- ${WATCHDOG_LOGFILE}
+ --name vdr-watchdogd
eend $? "failed starting vdr watchdog"
fi
}
diff --git a/usr/share/vdr/rcscript/watchdog-restart-20-modules.sh b/usr/share/vdr/rcscript/watchdog-restart-20-modules.sh
index ee595f2..6c03abc 100644
--- a/usr/share/vdr/rcscript/watchdog-restart-20-modules.sh
+++ b/usr/share/vdr/rcscript/watchdog-restart-20-modules.sh
@@ -91,11 +91,8 @@ restart_load() {
addon_main() {
: ${WATCHDOG_RELOAD_DVB_MODULES:=no}
if [ "${WATCHDOG_RELOAD_DVB_MODULES}" = "yes" ]; then
- sleep 2
restart_unload
- sleep 2
restart_load
- sleep 1
fi
return 0
}