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