Skip to content

Instantly share code, notes, and snippets.

@piavlo
Last active December 30, 2015 20:28
Show Gist options
  • Save piavlo/7880495 to your computer and use it in GitHub Desktop.
Save piavlo/7880495 to your computer and use it in GitHub Desktop.
logstash init.d with daemonize tool
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
DESC="Logstash Daemon"
LOGSTASH_USER=logstash
DAEMON=/usr/bin/java
CONFIGDIR="/etc/logstash/conf.d"
LOGDIR="/var/log/logstash"
VERBOSE=""
SCRIPTNAME=/etc/init.d/logstash
PIDFILE="/var/run/logstash.pid"
LOCKFILE="/var/run/lock/logstash"
WORKDIR=/opt/logstash
FILTER_WORKERS=1
EVENT_TIMEOUT=60
SHUTDOWN_TIMEOUT=5
[ -e /etc/default/logstash ] && . /etc/default/logstash
LOGSTASH_OPTS="--config ${CONFIGDIR} --log ${LOGDIR}/agent.log --filterworkers ${FILTER_WORKERS} --watchdog-timeout ${EVENT_TIMEOUT} ${VERBOSE}"
CMD="${DAEMON} ${JVM_OPTS} -cp /opt/logstash logstash.runner agent ${LOGSTASH_OPTS}"
. /lib/lsb/init-functions
start() {
ulimit -n 10240
log_daemon_msg "Starting $DESC: "
echo daemonize -c $WORKDIR -u $LOGSTASH_USER -p $PIDFILE -l $LOCKFILE -o $LOGDIR/stdout -e $LOGDIR/stderr $CMD
log_end_msg $?
}
stop(){
[ -e "$PIDFILE" ] && [ ! -z "$(cat $PIDFILE)" ] && test -d "/proc/$(cat $PIDFILE)" && kill -SIGINT $(cat $PIDFILE)
log_daemon_msg "Stopping $DESC: "
flock --exclusive --timeout $SHUTDOWN_TIMEOUT $LOCKFILE --command "echo -n"
log_end_msg $?
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 0.2
start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
DESC="Logstash Daemon"
LOGSTASH_USER=logstash
DAEMON=/usr/bin/java
CONFIGDIR="/etc/logstash/conf.d"
LOGDIR="/var/log/logstash"
VERBOSE=""
SCRIPTNAME=/etc/init.d/logstash
PIDFILE="/var/run/logstash.pid"
LOCKFILE="/var/lock/subsys/logstash"
WORKDIR=/opt/logstash
FILTER_WORKERS=1
EVENT_TIMEOUT=60
SHUTDOWN_TIMEOUT=5
[ -e /etc/sysconfig/logstash ] && . /etc/sysconfig/logstash
LOGSTASH_OPTS="--config ${CONFIGDIR} --log ${LOGDIR}/agent.log --filterworkers ${FILTER_WORKERS} --watchdog-timeout ${EVENT_TIMEOUT} ${VERBOSE}"
CMD="${DAEMON} ${JVM_OPTS} -cp /opt/logstash logstash.runner agent ${LOGSTASH_OPTS}"
. /lib/lsb/init-functions
start() {
ulimit -n 10240
daemonize -c $WORKDIR -u $LOGSTASH_USER -p $PIDFILE -l $LOCKFILE -o $LOGDIR/stdout -e $LOGDIR/stderr $CMD
if [ $? -eq 0 ]; then
log_success_msg "Starting $DESC:"
else
log_failure_msg "Starting $DESC:"
fi
}
stop(){
[ -e "$PIDFILE" ] && [ ! -z "$(cat $PIDFILE)" ] && test -d "/proc/$(cat $PIDFILE)" && kill -SIGINT $(cat $PIDFILE)
flock --exclusive --timeout $SHUTDOWN_TIMEOUT $LOCKFILE --command "echo -n"
if [ $? -eq 0 ]; then
log_success_msg "Stopping $DESC:"
else
log_failure_msg "Stopping $DESC:"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 0.2
start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment