Package: influxdb
Version: 0.13.0+dfsg1-4
Severity: normal
Tags: patch

Hi!

The attached file is a fixed and improveed init script for influxdb.
It removes things for which there's better guaranteed alternatives in
Debian and fixes few behavior nits.

Thanks,
Guillem
commit b5063ad4ff15aca76670f8635d292264fb34c3b1
Author: Guillem Jover <gjo...@sipwise.com>
Date:   Fri Sep 30 17:36:31 2016 +0200

    Fix init script

diff --git a/debian/influxdb.init b/debian/influxdb.init
index e9db2d0..71e54f8 100644
--- a/debian/influxdb.init
+++ b/debian/influxdb.init
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 ### BEGIN INIT INFO
 # Provides:          influxdb
@@ -32,13 +32,13 @@ USER=influxdb
 GROUP=influxdb
 
 if [ -r /lib/lsb/init-functions ]; then
-    source /lib/lsb/init-functions
+    . /lib/lsb/init-functions
 fi
 
 DEFAULT=/etc/default/influxdb
 
 if [ -r $DEFAULT ]; then
-    source $DEFAULT
+    . $DEFAULT
 fi
 
 if [ -z "$STDOUT" ]; then
@@ -58,48 +58,6 @@ fi
 
 OPEN_FILE_LIMIT=65536
 
-function pidofproc() {
-    if [ $# -ne 3 ]; then
-        echo "Expected three arguments, e.g. $0 -p pidfile daemon-name"
-    fi
-
-    pid=$(pgrep -f $3)
-    local pidfile=$(cat $2)
-
-    if [ "x$pidfile" == "x" ]; then
-        return 1
-    fi
-
-    if [ "x$pid" != "x" -a "$pidfile" == "$pid" ]; then
-        return 0
-    fi
-
-    return 1
-}
-
-function killproc() {
-    if [ $# -ne 3 ]; then
-        echo "Expected three arguments, e.g. $0 -p pidfile signal"
-    fi
-
-    PID=`cat $2`
-
-    /bin/kill -s $3 $PID
-    while true; do
-        pidof `basename $daemon` >/dev/null
-        if [ $? -ne 0 ]; then
-            return 0
-        fi
-
-        sleep 1
-        n=$(expr $n + 1)
-        if [ $n -eq 30 ]; then
-            /bin/kill -s SIGKILL $PID
-            return 0
-        fi
-    done
-}
-
 # Process name ( For display )
 name=influxd
 desc=database
@@ -122,45 +80,10 @@ config=/etc/influxdb/influxdb.conf
 # If the daemon is not there, then exit.
 [ -x $daemon ] || exit 0
 
-function wait_for_startup() {
-    control=1
-    while [ $control -lt 5 ]
-    do
-        if [ ! -e $pidfile ]; then
-            sleep 1
-            control=$((control+1))
-        else
-            break
-        fi
-    done
-}
-
-function is_process_running() {
-    # Checked the PID file exists and check the actual status of process
-    if [ -e $pidfile ]; then
-        pidofproc -p $pidfile $daemon > /dev/null 2>&1 && status="0" || status="$?"
-        # If the status is SUCCESS then don't need to start again.
-        if [ "x$status" = "x0" ]; then
-            return 0
-        else
-            return 1
-        fi
-    else
-        return 1
-    fi
-}
-
 case $1 in
     start)
         log_daemon_msg "Starting $desc" "$name"
 
-        # Check if it's running first
-        is_process_running
-        if [ $? -eq 0 ]; then
-            log_end_msg 0
-            exit 0
-        fi
-
         # Bump the file limits, before launching the daemon. These will carry over to
         # launched processes.
         ulimit -n $OPEN_FILE_LIMIT
@@ -170,41 +93,22 @@ case $1 in
             exit 1
         fi
 
-        if which start-stop-daemon > /dev/null 2>&1; then
-            start-stop-daemon --chuid $GROUP:$USER --start --quiet --pidfile $pidfile --exec $daemon -- -pidfile $pidfile -config $config $INFLUXD_OPTS >>$STDOUT 2>>$STDERR &
-        else
-            su $USER -c "nohup $daemon -pidfile $pidfile -config $config $INFLUXD_OPTS >>$STDOUT 2>>$STDERR &"
-        fi
+        start-stop-daemon --start --quiet --oknodo --exec $daemon \
+          --chuid $GROUP:$USER --pidfile $pidfile --background \
+          -- -pidfile $pidfile -config $config $INFLUXD_OPTS \
+          >>$STDOUT 2>>$STDERR
 
-        wait_for_startup && is_process_running
-        if [ $? -ne 0 ]; then
-            log_progress_msg "$name process failed to start"
-            log_end_msg 1
-            exit 1
-        else
-            log_end_msg 0
-            exit 0
-        fi
+        log_end_msg $?
         ;;
 
     stop)
         log_daemon_msg "Stopping $desc" "$name"
 
         # Stop the daemon.
-        is_process_running
-        if [ $? -ne 0 ]; then
-            log_progress_msg "$name process is not running"
-            log_end_msg 0
-            exit 0 # Exit
-        else
-            if killproc -p $pidfile SIGTERM && /bin/rm -rf $pidfile; then
-                log_end_msg 0
-                exit 0
-            else
-                log_end_msg 1
-                exit 1
-            fi
-        fi
+        start-stop-daemon --stop --quiet --oknodo \
+          --exec $daemon --pidfile $pidfile
+
+        log_end_msg $?
         ;;
 
     restart|force-reload)
@@ -216,19 +120,7 @@ case $1 in
         ;;
 
     status)
-        log_daemon_msg "Checking status of $desc" "$name"
-
-        # Check the status of the process.
-        is_process_running
-        if [ $? -eq 0 ]; then
-            log_progress_msg "running"
-            log_end_msg 0
-            exit 0
-        else
-            log_progress_msg "apparently not running"
-            log_end_msg 1
-            exit 1
-        fi
+        status_of_proc $daemon $name
         ;;
 
     version)
@@ -237,7 +129,7 @@ case $1 in
 
     *)
         # For invalid arguments, print the usage message.
-        echo "Usage: $0 {start|stop|restart|status|version}"
+        echo "Usage: $0 {start|stop|force-reload|restart|status|version}"
         exit 2
         ;;
 esac

Reply via email to