File kibana.init of Package kibana

#!/bin/sh
# Init script for kibana
# Created by Thomas Neuburger
# Implemented based on SLE11_3 /etc/init.d/skeleton file
#
### BEGIN INIT INFO
# Provides:          kibana
# Required-Start:    $syslog $remote_fs
# Should-Start:      $time ypbind smtp
# Required-Stop:     $syslog $remote_fs
# Should-Stop:       ypbind smtp
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Starts Kibana as Daemon
# Description:       Starts Kibana as Daemon (based on node.js)
### END INIT INFO

# set defaults
CONFIG_PATH=/etc/kibana/
LOG_PATH=/var/log/kibana
USER=kibana
GROUP=kibana

# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
KIBANA_BIN=/opt/kibana/bin/kibana
test -x $KIBANA_BIN || { echo "$KIBANA_BIN not installed"; 
        if [ "$1" = "stop" ]; then exit 0;
        else exit 5; fi; }

# Check for existence of needed config file and read it
KIBANA_CONFIG=/etc/sysconfig/kibana
test -r $KIBANA_CONFIG || { echo "$KIBANA_CONFIG not existing";
        if [ "$1" = "stop" ]; then exit 0;
        else exit 6; fi; }

# Read config        
. $KIBANA_CONFIG

name=kibana
pidfile="/var/run/$name.pid"

# Export config path (later usage by /opt/kibana/src/cli/serve/serve.js)
export CONFIG_PATH

# Create PID file with correct rights
touch $pidfile
chown ${USER}: $pidfile

# Shell functions sourced from /etc/rc.status:
#      rc_check         check and set local and overall rc status
#      rc_status        check and set local and overall rc status
#      rc_status -v     be verbose in local rc status and clear it afterwards
#      rc_status -v -r  ditto and clear both the local and overall rc status
#      rc_status -s     display "skipped" and exit with status 3
#      rc_status -u     display "unused" and exit with status 3
#      rc_failed        set local and overall rc status to failed
#      rc_failed <num>  set local and overall rc status to <num>
#      rc_reset         clear both the local and overall rc status
#      rc_exit          exit appropriate to overall rc status
#      rc_active        checks whether a service is activated by symlinks
. /etc/rc.status

# Reset status of this service
rc_reset

case "$1" in
    start)
        echo -n "Starting $name "
        if [ -s $pidfile -a -d /proc/$(<$pidfile) ]; then
                echo "pid $(<$pidfile) still running"
                rc_failed
        else
                > $pidfile
                /bin/su -p -s /bin/bash $USER $KIBANA_BIN &> $LOG_PATH/kibana-init.log &
        fi

        # Remember status and be verbose
        rc_status -v
        ;;
    stop)
        echo -n "Shutting down $name "
        pid=$(<$pidfile)
        rm $pidfile 2>/dev/null
        kill -TERM $pid 2>/dev/null

        # Remember status and be verbose
        rc_status -v
        ;;
    restart)
        ## Stop the service and regardless of whether it was
        ## running or not, start it again.
        $0 stop
        $0 start

        # Remember status and be quiet
        rc_status
        ;;
    reload)
        echo -n "Reload $name "
        ## service does not support reload:
        rc_failed 3
        rc_status -v
        ;;
    status)
        echo -n "Checking for $name "
        if ! [ -f $pidfile ]; then
                # not running
                rc_failed 3
        elif [ -s $pidfile -a -d /proc/$(<$pidfile) ]; then
                # running
                :
        else
                # stale pid file
                rc_failed 1
                #rm -f $pidfile
        fi
        rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart|reload}"
        exit 1
        ;;
esac
rc_exit
openSUSE Build Service is sponsored by