Last active
August 29, 2015 14:27
-
-
Save TronPaul/2d3a238024875efa100a to your computer and use it in GitHub Desktop.
Kibana init.d
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# /etc/init.d/kibana4_init -- startup script for kibana4 | |
# [email protected] 2015-02-20; used elasticsearch init script as template | |
# https://github.com/akabdog/scripts/edit/master/kibana4_init | |
# | |
### BEGIN INIT INFO | |
# Provides: kibana4_init | |
# Required-Start: $network $remote_fs $named | |
# Required-Stop: $network $remote_fs $named | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Starts kibana4_init | |
# Description: Starts kibana4_init using start-stop-daemon | |
### END INIT INFO | |
#configure this with wherever you unpacked kibana: | |
KIBANA_BIN=/usr/local/share/kibana/bin | |
NAME=kibana4 | |
PID_FILE=/var/run/$NAME.pid | |
PATH=/bin:/usr/bin:/sbin:/usr/sbin:$KIBANA_BIN | |
DAEMON=$KIBANA_BIN/kibana | |
DESC="Kibana4" | |
USER=nobody | |
if [ `id -u` -ne 0 ]; then | |
echo "You need root privileges to run this script" | |
exit 1 | |
fi | |
. /lib/lsb/init-functions | |
if [ -r /etc/default/rcS ]; then | |
. /etc/default/rcS | |
fi | |
case "$1" in | |
start) | |
log_daemon_msg "Starting $DESC" | |
pid=`pidofproc -p $PID_FILE kibana` | |
if [ -n "$pid" ] ; then | |
log_begin_msg "Already running." | |
echo "Already running." | |
log_end_msg 0 | |
exit 0 | |
fi | |
# Check if elasticsearch is up: | |
elasticsearchDOWN=true | |
timer=1 | |
# Attempt to start, wait for elasticsearch, if it doesn't complete in 300 seconds (30*10), exit | |
while [ "$elasticsearchDOWN" = true ] && [ $timer -lt 10 ]; do | |
response=`curl 'http://localhost:9200'` | |
if (echo "$response" | grep -e "\"status\" : 200"); then | |
# Start Daemon | |
elasticsearchDOWN=false | |
start-stop-daemon --start --user "$USER" -c "$USER" --pidfile "$PID_FILE" --make-pidfile --background --exec $DAEMON | |
echo $elasticsearchDOWN | |
else | |
log_begin_msg "Elasticsearch not running, waiting..." | |
echo "Elasticsearch not running, waiting..." | |
log_end_msg 0 | |
sleep 10 | |
fi | |
timer=$((timer+1)) | |
done | |
log_end_msg $? | |
;; | |
stop) | |
log_daemon_msg "Stopping $DESC" | |
if [ -f "$PID_FILE" ]; then | |
start-stop-daemon --stop --user "$USER" -c "$USER" --pidfile "$PID_FILE" \ | |
--retry=TERM/20/KILL/5 >/dev/null | |
if [ $? -eq 1 ]; then | |
log_progress_msg "$DESC is not running but pid file exists, cleaning up" | |
elif [ $? -eq 3 ]; then | |
PID="`cat $PID_FILE`" | |
log_failure_msg "Failed to stop $DESC (pid $PID)" | |
exit 1 | |
fi | |
rm -f "$PID_FILE" | |
else | |
log_progress_msg "(not running)" | |
fi | |
log_end_msg 0 | |
;; | |
status) | |
status_of_proc -p $PID_FILE kibana kibana && exit 0 || exit $? | |
;; | |
restart|force-reload) | |
if [ -f "$PID_FILE" ]; then | |
$0 stop | |
sleep 1 | |
fi | |
$0 start | |
;; | |
*) | |
log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}" | |
exit 1 | |
;; | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment