From 5c26a28bc9a6c67614e1e626ca2387bb171c9926 Mon Sep 17 00:00:00 2001
From: Adam Wujek <adam.wujek@cern.ch>
Date: Mon, 22 Jun 2015 17:04:59 +0200
Subject: [PATCH] rootfs: improve snmpd's init script

Use start-stop-daemon to start/stop snmpd daemon.
Change name of init script from snmp to snmpd. Also rename link from S80snmp to
S80snmpd. Rename and update snmpd config for monit.

Distinguish between start-stop-daemon return value 0, 1 and the rest.

Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
---
 .../etc/init.d/{snmp => snmpd}                | 23 +++++++++++++++----
 .../etc/monit.d/{snmp.conf => snmpd.conf}     |  4 ++--
 userspace/rootfs_override/etc/rcS/S80snmp     |  1 -
 userspace/rootfs_override/etc/rcS/S80snmpd    |  1 +
 4 files changed, 21 insertions(+), 8 deletions(-)
 rename userspace/rootfs_override/etc/init.d/{snmp => snmpd} (60%)
 rename userspace/rootfs_override/etc/monit.d/{snmp.conf => snmpd.conf} (55%)
 delete mode 120000 userspace/rootfs_override/etc/rcS/S80snmp
 create mode 120000 userspace/rootfs_override/etc/rcS/S80snmpd

diff --git a/userspace/rootfs_override/etc/init.d/snmp b/userspace/rootfs_override/etc/init.d/snmpd
similarity index 60%
rename from userspace/rootfs_override/etc/init.d/snmp
rename to userspace/rootfs_override/etc/init.d/snmpd
index 652781a31..db2955076 100755
--- a/userspace/rootfs_override/etc/init.d/snmp
+++ b/userspace/rootfs_override/etc/init.d/snmpd
@@ -16,18 +16,31 @@ start_counter() {
 }
 
 start() {
+    echo -n "Starting snmpd daemon: "
     # Log to syslog at daemon level. And log source address (-a)
-    snmpd -Lsd -p $SNMP_PID -a -c $SNMP_CONF
-    start_counter
+    start-stop-daemon -q -p $SNMP_PID -S \
+		--exec /usr/sbin/snmpd -- -Lsd -p $SNMP_PID -a -c $SNMP_CONF
+    ret=$?
+    if [ $ret -eq 0 ]; then
+	start_counter
+	echo "OK"
+    elif [ $ret -eq 1 ]; then
+	echo "Failed (already running?)"
+    else
+	echo "Failed"
+    fi
 }
 
 stop() {
-    if pidof snmpd > /dev/null; then
-	echo -n "Stopping snmpd: "
-	start-stop-daemon -K -q -p $SNMP_PID
+    echo -n "Stopping snmpd: "
+    start-stop-daemon -K -q -p $SNMP_PID
+    if [ $? -eq 0 ]; then
 	echo "OK"
+    else
+	echo "Failed"
     fi
 }
+
 restart() {
     stop
     start
diff --git a/userspace/rootfs_override/etc/monit.d/snmp.conf b/userspace/rootfs_override/etc/monit.d/snmpd.conf
similarity index 55%
rename from userspace/rootfs_override/etc/monit.d/snmp.conf
rename to userspace/rootfs_override/etc/monit.d/snmpd.conf
index c27602227..eac51bb20 100644
--- a/userspace/rootfs_override/etc/monit.d/snmp.conf
+++ b/userspace/rootfs_override/etc/monit.d/snmpd.conf
@@ -1,4 +1,4 @@
  check process snmpd with pidfile /var/run/snmpd.pid
-   start program = "/etc/init.d/snmp start"
-   stop program = "/etc/init.d/snmp stop"
+   start program = "/etc/init.d/snmpd start"
+   stop program = "/etc/init.d/snmpd stop"
    if 5 restart within 10 cycles then exec "/sbin/reboot"
diff --git a/userspace/rootfs_override/etc/rcS/S80snmp b/userspace/rootfs_override/etc/rcS/S80snmp
deleted file mode 120000
index 4adfeb2f0..000000000
--- a/userspace/rootfs_override/etc/rcS/S80snmp
+++ /dev/null
@@ -1 +0,0 @@
-../init.d/snmp
\ No newline at end of file
diff --git a/userspace/rootfs_override/etc/rcS/S80snmpd b/userspace/rootfs_override/etc/rcS/S80snmpd
new file mode 120000
index 000000000..f270432a6
--- /dev/null
+++ b/userspace/rootfs_override/etc/rcS/S80snmpd
@@ -0,0 +1 @@
+../init.d/snmpd
\ No newline at end of file
-- 
GitLab