]> arthur.barton.de Git - netdata.git/blobdiff - system/netdata-init-d.in
Merge branch 'master' into ab-debian
[netdata.git] / system / netdata-init-d.in
old mode 100755 (executable)
new mode 100644 (file)
index 07d5a19..468ceee
@@ -1,8 +1,8 @@
 #!/bin/sh
 #
-# netdata      Real-time charts for system monitoring
+# netdata      Real-time performance monitoring, done right
 # chkconfig: 345 99 01
-# description:  Netdata is a daemon that collects data in realtime (per second)
+# description:  Netdata is a daemon that collects data in real-time (per second)
 #               and presents a web site to view and analyze them. The presentation
 #               is also real-time and full of interactive charts that precisely
 #               render all collected values.
 
 DAEMON="netdata"
 DAEMON_PATH=@sbindir_POST@
-PIDFILE=@localstatedir_POST@/$DAEMON.pid
+PIDFILE=@localstatedir_POST@/run/$DAEMON.pid
 DAEMONOPTS="-P $PIDFILE"
 STOP_TIMEOUT="10"
 
+[ -e /etc/sysconfig/$DAEMON ] && . /etc/sysconfig/$DAEMON
+
+LOCKFILE=/var/lock/subsys/$DAEMON
+
 service_start()
 {
-       echo "Starting $DAEMON..."
+       [ -x $DAEMON_PATH ] || exit 5
+       echo -n "Starting $DAEMON..."
        daemon $DAEMON_PATH/$DAEMON $DAEMONOPTS
        RETVAL=$?
        echo
+       [ $RETVAL -eq 0 ] && touch $LOCKFILE
        return $RETVAL
 }
 
@@ -31,10 +37,8 @@ service_stop()
        printf "%-50s" "Stopping $DAEMON..."
        killproc -p ${PIDFILE} -d ${STOP_TIMEOUT} $DAEMON
        RETVAL=$?
-       if [ $RETVAL -eq 0 ]; then
-               rm -f ${PIDFILE}
-       fi
        echo
+       [ $RETVAL -eq 0 ] && rm -f ${PIDFILE} ${LOCKFILE}
        return $RETVAL
 }
 
@@ -42,7 +46,7 @@ condrestart()
 {
        if ! service_status > /dev/null; then
                RETVAL=$1
-               return
+               return $RETVAL
        fi
 
        service_stop
@@ -54,11 +58,18 @@ service_status()
        status -p ${PIDFILE} $DAEMON_PATH/$DAEMON
 }
 
+service_status_quiet()
+{
+       status -p ${PIDFILE} $DAEMON_PATH/$DAEMON >/dev/null 2>&1
+}
+
 case "$1" in
 start)
+       service_status_quiet && exit 0
        service_start
 ;;
 stop)
+       service_status_quiet || exit 0
        service_stop
 ;;
 restart)