#!/bin/bash #set -x ### BEGIN INIT INFO # # Provides: kibana # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Kibana 4.2 init script # Description: Starts Kibana 4.2 as a daemon. # ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin export PATH ## Check to see if we are running as root first. if [ `id -u` -ne 0 ]; then echo "You need root privileges to run this script" exit 1 fi ## Kibana 4.2 Init Script. PROG_NAME="kibana" PID_PATH="/var/run" PID_FILE="$PID_PATH/$PROG_NAME" PROG_PATH="/bin/kibana/bin" PROG_LOGDIR=/var/log/$PROG_NAME if ! [ -e "$PROG_LOGDIR" ]; then mkdir -p $PROG_LOGDIR fi start() { if [ -e "$PID_PATH/$PROG_NAME.pid" ]; then ## Kibana is already running, exit with error. echo "Error! $PROG_NAME is currently running!" 1>&2 exit 1 else DATE="$(date '+%FT%T:%:z')" echo '{"type":"log","@timestamp":"'$DATE'","tags":["start","info"],"pid":$PROG_PID,"message":"Kibana has been started with /etc/init.d/kibana '$PROG_ARGS'"}' >>"$PROG_LOGDIR/$PROG_NAME.log" exec "$PROG_PATH/$PROG_NAME" >>"$PROG_LOGDIR/$PROG_NAME.log" 2>&1 & PROG_PID="$!" printf "$PROG_PID\n" >"$PID_PATH/$PROG_NAME.pid" echo "$PROG_NAME started with PID: $PROG_PID" fi } stop() { if [ -e "$PID_PATH/$PROG_NAME.pid" ]; then ## Program is running, so stop it PROG_PID="$(cat $PID_PATH/$PROG_NAME.pid)" kill -TERM $PROG_PID if [ $? == "0" ]; then rm "$PID_PATH/$PROG_NAME.pid" DATE="$(date '+%FT%T:%:z')" echo '{"type":"log","@timestamp":"'$DATE'","tags":["stopped","info"],"pid":$PROG_PID,"message":"Kibana has been stopped with /etc/init.d/kibana '$PROG_ARGS'"}' >>"$PROG_LOGDIR/$PROG_NAME.log" echo "$PROG_NAME has stopped" else echo "Error!: $PROG_NAME has failed to stop! Check PID: $PROG_PID." exit 1 fi else ## Program is not running, exit with error. echo "Error!: $PROG_NAME does not appear to be running!" 1>&2 fi } status() { if [ -e "$PID_PATH/$PROG_NAME.pid" ]; then PROG_PID="$(cat $PID_PATH/$PROG_NAME.pid)" ps -l | grep " $PROG_PID " | grep -v grep 1>&2 > /tmp/null if [ $? == "0" ]; then echo "$PROG_NAME is running with PID: $PROG_PID" rm /tmp/null else ps -aux | grep "$PROG_NAME" | grep -v grep 1>&2 > /tmp/null if [ $? == "0" ]; then PROG_PID="$(ps -aux | grep "$PROG_NAME" | grep -v grep | awk '{ print $2 }')" printf "$PROG_PID\n" >"$PID_PATH/$PROG_NAME.pid" echo "$PROG_NAME is running with PID: $PROG_PID" rm /tmp/null else rm "$PID_PATH/$PROG_NAME.pid" echo "$PROG_NAME is not running" rm /tmp/null fi fi else ## Program is not running echo "$PROG_NAME is not running" rm /tmp/null fi } case "$1" in start) PROG_ARGS="start" start exit 0 ;; stop) PROG_ARGS="stop" stop exit 0 ;; status) PROG_ARGS="status" status exit 0 ;; reload) PROG_ARGS="reload" stop start exit 0 ;; restart) PROG_ARGS="restart" stop start exit 0 ;; **) echo "Usage: $0 {start|stop|restart|status|reload}" 1>&2 exit 1 ;; esac