view logstash.rc @ 0:df4952a2fb06

initial version
author Carl Byington <carl@five-ten-sg.com>
date Fri, 01 Mar 2013 14:58:09 -0800
parents
children 796ac0b50dbf
line wrap: on
line source

#!/bin/bash
#
#	/etc/rc.d/init.d/logstash
#
#	Starts Logstash as a daemon
#
# chkconfig: 2345 20 80
# description: Starts Logstash as a daemon
# pidfile: /var/run/logstash.pid

### BEGIN INIT INFO
# Provides: logstash
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: Logstash
# Description: Starts Logstash as a daemon.
# Modified originally from https://gist.github.com/2228905#file_logstash.sh

### END INIT INFO

# Amount of memory for Java
#JAVAMEM=256M

export HOME=/var/lib/logstash
DESC="Logstash Daemon"
JAVA=$(which java)
CONFIGFILE=/etc/logstash/logstash.conf
LOGFILE=/var/log/logstash/logstash.log
JARNAME=/usr/local/bin/logstash.jar
ARGS="-jar ${JARNAME} agent -vvv --config ${CONFIGFILE} --log ${LOGFILE} -- web --backend elasticsearch://127.0.0.1/?local"
SCRIPTNAME=/etc/rc.d/init.d/logstash
PIDFILE=/var/run/logstash.pid
base=logstash

# Exit if java is not installed
if [ ! -x "$JAVA" ]; then
    echo "Couldn't find $JAVA"
    exit 99
fi

. /etc/init.d/functions

#
# Function that starts the daemon/service
#
do_start() {
    cd $HOME
    pid=$(su logstash -c 'echo -e "'"$JAVA $ARGS"' </dev/null >'"$LOGFILE"' 2>&1 & \n echo \$!" | bash')
    echo $pid >$PIDFILE
    [ -n "$pid" ] && success $"$base startup" || failure $"$base startup"
}


#
# Function that stops the daemon/service
#
do_stop() {
    killproc -p $PIDFILE logstash
}


case "$1" in
  start)
    echo -n "Starting $DESC: "
    do_start
    touch /var/lock/subsys/$base
    ;;
  stop)
    echo -n "Stopping $DESC: "
    do_stop
    rm /var/lock/subsys/$base 2>/dev/null
    rm $PIDFILE               2>/dev/null
    ;;
  restart)
    echo -n "Restarting $DESC: "
    do_stop
    do_start
    ;;
  reload)
    echo -n "Reloading $DESC: "
    pid=$(cat $PIDFILE)
    [ -n "$pid" ] && pkill -HUP -u logstash -P $pid
    ;;
  status)
    status -p $PIDFILE
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
    exit 3
    ;;
esac

echo
exit 0