From 774e061c3a07f7e44276b57ddadbc17879e97f1d Mon Sep 17 00:00:00 2001 From: Adam Wujek <adam.wujek@cern.ch> Date: Thu, 2 Jul 2015 19:56:12 +0200 Subject: [PATCH] rootfs: add init script for wrs_watchdog --Use CONFIG_WRS_LOG_WRSWATCHDOG as logging destination --Add restart counter for wrs_watchdog Signed-off-by: Adam Wujek <adam.wujek@cern.ch> --- .../etc/init.d/wrs_watchdog.sh | 81 +++++++++++++++++++ .../etc/rcS/S70wrs_watchdog.sh | 1 + 2 files changed, 82 insertions(+) create mode 100755 userspace/rootfs_override/etc/init.d/wrs_watchdog.sh create mode 120000 userspace/rootfs_override/etc/rcS/S70wrs_watchdog.sh diff --git a/userspace/rootfs_override/etc/init.d/wrs_watchdog.sh b/userspace/rootfs_override/etc/init.d/wrs_watchdog.sh new file mode 100755 index 000000000..09f896e7e --- /dev/null +++ b/userspace/rootfs_override/etc/init.d/wrs_watchdog.sh @@ -0,0 +1,81 @@ +#!/bin/sh + +WDG_PID=/var/run/wrs_watchdog.pid +dotconfig=/wr/etc/dot-config + +start_counter() { + # increase boot counter + COUNTER_FILE="/tmp/start_cnt_wrs_watchdog" + START_COUNTER=1 + if [ -f "$COUNTER_FILE" ]; + then + read -r START_COUNTER < $COUNTER_FILE + START_COUNTER=$((START_COUNTER+1)) + fi + echo "$START_COUNTER" > $COUNTER_FILE +} + +start() { + echo -n "Starting wrs_watchdog daemon: " + + if [ -f $WDG_PID ] && kill -0 `cat $WDG_PID` &> /dev/null; then + # wrs_watchdog already running + echo "Failed (already running?)" + else + if [ -f $dotconfig ]; then + . $dotconfig + else + echo "$0 unable to source dot-config ($dotconfig)!" + fi + + WRS_LOG=$CONFIG_WRS_LOG_WRSWATCHDOG + + # if empty turn it to /dev/null + if [ -z $WRS_LOG ]; then + WRS_LOG="/dev/null"; + fi + + # if a pathname, use it + if echo "$WRS_LOG" | grep / > /dev/null; then + eval LOGPIPE=\" \> $WRS_LOG 2\>\&1 \"; + else + # not a pathname: use verbatim + eval LOGPIPE=\" 2\>\&1 \| logger -t wr-switch -p $WRS_LOG\" + fi + + eval /wr/bin/wrs_watchdog -d -p $WDG_PID $LOGPIPE \& + start_counter + echo "OK" + fi +} + +stop() { + echo -n "Stopping wrs_watchdog " + start-stop-daemon -K -q -p $WDG_PID + if [ $? -eq 0 ]; then + echo "OK" + else + echo "Failed" + fi +} + +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac diff --git a/userspace/rootfs_override/etc/rcS/S70wrs_watchdog.sh b/userspace/rootfs_override/etc/rcS/S70wrs_watchdog.sh new file mode 120000 index 000000000..d358fbe0e --- /dev/null +++ b/userspace/rootfs_override/etc/rcS/S70wrs_watchdog.sh @@ -0,0 +1 @@ +../init.d/wrs_watchdog.sh \ No newline at end of file -- GitLab