From 81819a44b7459ad5caced1e35d5620180ca7fafb Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Sat, 26 Apr 2014 09:21:10 +0200 Subject: [PATCH 01/11] Rename logstash-forwarder.init to logstash-forwarder.deb.init --- logstash-forwarder.init => logstash-forwarder.deb.init | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename logstash-forwarder.init => logstash-forwarder.deb.init (100%) diff --git a/logstash-forwarder.init b/logstash-forwarder.deb.init similarity index 100% rename from logstash-forwarder.init rename to logstash-forwarder.deb.init From 16e455ef4496a0eb7cde315657dc748691d6bd61 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Sat, 26 Apr 2014 09:27:53 +0200 Subject: [PATCH 02/11] add new redhat sysv init script --- logstash-forwarder.rpm.init | 74 +++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 logstash-forwarder.rpm.init diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init new file mode 100644 index 00000000..4e9993d6 --- /dev/null +++ b/logstash-forwarder.rpm.init @@ -0,0 +1,74 @@ +#!/bin/bash +# chkconfig: 345 80 20 +# description: Logstash Forwarder +# processname: logstash-forwarder +# config: /etc/logstash-forwarder +# pidfile: /var/run/logstash-forwarder.pid + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +NAME=logstash-forwarder +DAEMON=/opt/logstash-forwarder/bin/logstash-forwarder +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +[ -r /etc/default/$NAME ] && . /etc/default/$NAME +. /etc/init.d/functions + +[ -e /etc/sysconfig/logstash-forwarder ] && . /etc/sysconfig/logstash-forwarder +DAEMON_ARGS="${DAEMON_ARGS:--config /etc/logstash-forwarder.conf -spool-size 100 -log-to-syslog}" + +start() +{ + echo -n $"Starting $NAME: " + nohup $DAEMON $DAEMON_ARGS >/dev/null 2>&1 & + RETVAL=$? + PID=$! + echo $PID > $PIDFILE + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME +} + +stop() +{ + echo -n $"Stopping $NAME: " + killproc -p "$PIDFILE" $DAEMON + RETVAL=$? + [ -f "$PIDFILE" ] && rm -f "$PIDFILE" + echo + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$NAME +} + +restart () { + stop + start +} + +RETVAL=0 + +case "$1" in + start) + status -p $PIDFILE >/dev/null + RET=$? + if [ $RET -ne 0 ];then + start + fi + ;; + stop) + stop + ;; + restart|reload|force-reload) + restart + ;; + condrestart) + [ -f /var/lock/subsys/$NAME ] && restart || : + ;; + status) + status -p $PIDFILE + RETVAL=$? + ;; + *) + echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" + RETVAL=1 +esac + +exit $RETVAL From fbac8e7c96917a083e2e0aa5754f42170cf09388 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Sat, 26 Apr 2014 09:30:26 +0200 Subject: [PATCH 03/11] extend make target to provide separate deb/rpm init scripts --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 17416673..b889dc95 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,7 @@ rpm deb: | build-all --url "https://github.com/elasticsearch/logstash-forwarder" \ build/bin/logstash-forwarder=$(PREFIX)/bin/ \ build/bin/logstash-forwarder.sh=$(PREFIX)/bin/ \ - logstash-forwarder.init=/etc/init.d/logstash-forwarder + logstash-forwarder.$@.init=/etc/init.d/logstash-forwarder # Vendor'd dependencies # If VENDOR contains 'zeromq' download and build it. From d842249a6b97d8b4cefc1ca420e2b1ebca04930d Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 08:38:06 +0100 Subject: [PATCH 04/11] add LSB block --- logstash-forwarder.rpm.init | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index 4e9993d6..ccc3cd0a 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -5,6 +5,16 @@ # config: /etc/logstash-forwarder # pidfile: /var/run/logstash-forwarder.pid +### BEGIN INIT INFO +# Provides: logstash-forwarder +# Required-Start: $local_fs $network $remote_fs +# Required-Stop: $local_fs $network $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: start and stop logstash-forwarder +# Description: Logstash Forwarder +### END INIT INFO + PATH=/sbin:/usr/sbin:/bin:/usr/bin NAME=logstash-forwarder DAEMON=/opt/logstash-forwarder/bin/logstash-forwarder From 648e552f76330993266d9ad2446b302a28ab8063 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 13:54:19 +0100 Subject: [PATCH 05/11] fix parameter usage -config --- logstash-forwarder.rpm.init | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index ccc3cd0a..58c3defb 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -25,7 +25,7 @@ SCRIPTNAME=/etc/init.d/$NAME . /etc/init.d/functions [ -e /etc/sysconfig/logstash-forwarder ] && . /etc/sysconfig/logstash-forwarder -DAEMON_ARGS="${DAEMON_ARGS:--config /etc/logstash-forwarder.conf -spool-size 100 -log-to-syslog}" +DAEMON_ARGS="${DAEMON_ARGS:-config /etc/logstash-forwarder.conf -spool-size 100 -log-to-syslog}" start() { @@ -57,7 +57,7 @@ RETVAL=0 case "$1" in start) - status -p $PIDFILE >/dev/null + status -p $PIDFILE $NAME>/dev/null RET=$? if [ $RET -ne 0 ];then start @@ -73,7 +73,7 @@ case "$1" in [ -f /var/lock/subsys/$NAME ] && restart || : ;; status) - status -p $PIDFILE + status -p $PIDFILE $NAME RETVAL=$? ;; *) From 3c708bdedb6edf96b7d6c5e75c672212dbc5aab4 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 13:57:05 +0100 Subject: [PATCH 06/11] remove .conf extension to follow logstash conventions --- logstash-forwarder.rpm.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index 58c3defb..eb714c48 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -25,7 +25,7 @@ SCRIPTNAME=/etc/init.d/$NAME . /etc/init.d/functions [ -e /etc/sysconfig/logstash-forwarder ] && . /etc/sysconfig/logstash-forwarder -DAEMON_ARGS="${DAEMON_ARGS:-config /etc/logstash-forwarder.conf -spool-size 100 -log-to-syslog}" +DAEMON_ARGS="${DAEMON_ARGS:-config /etc/logstash-forwarder -spool-size 100 -log-to-syslog}" start() { From 769a3893ae96d739931bbd30f7acf125c487ed52 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 14:01:18 +0100 Subject: [PATCH 07/11] add try-restart parameter --- logstash-forwarder.rpm.init | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index eb714c48..ae53005d 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -69,7 +69,7 @@ case "$1" in restart|reload|force-reload) restart ;; - condrestart) + condrestart|try-restart) [ -f /var/lock/subsys/$NAME ] && restart || : ;; status) @@ -77,7 +77,7 @@ case "$1" in RETVAL=$? ;; *) - echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" + echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" RETVAL=1 esac From cd318ba5d57f0724045ae47d4fe43807bbe71a72 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 15:31:06 +0100 Subject: [PATCH 08/11] fix typo --- logstash-forwarder.rpm.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index ae53005d..174b6e98 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -25,7 +25,7 @@ SCRIPTNAME=/etc/init.d/$NAME . /etc/init.d/functions [ -e /etc/sysconfig/logstash-forwarder ] && . /etc/sysconfig/logstash-forwarder -DAEMON_ARGS="${DAEMON_ARGS:-config /etc/logstash-forwarder -spool-size 100 -log-to-syslog}" +DAEMON_ARGS="${DAEMON_ARGS:--config /etc/logstash-forwarder -spool-size 100 -log-to-syslog}" start() { From 4a11a16fe39250ed4a1252d8f38f8fc8e8a8c891 Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 16:46:36 +0100 Subject: [PATCH 09/11] complete rewrite to be fully SysV compatible --- logstash-forwarder.rpm.init | 122 ++++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 47 deletions(-) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index 174b6e98..5b5853d9 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -15,70 +15,98 @@ # Description: Logstash Forwarder ### END INIT INFO +# Source function library. +. /etc/rc.d/init.d/functions + PATH=/sbin:/usr/sbin:/bin:/usr/bin -NAME=logstash-forwarder + +prog=logstash-forwarder DAEMON=/opt/logstash-forwarder/bin/logstash-forwarder -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME +pidfile=/var/run/$prog.pid +lockfile=/var/lock/subsys/$prog -[ -r /etc/default/$NAME ] && . /etc/default/$NAME -. /etc/init.d/functions +# load defaults + +[ -e /etc/default/$prog ] && . /etc/default/$prog +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog -[ -e /etc/sysconfig/logstash-forwarder ] && . /etc/sysconfig/logstash-forwarder DAEMON_ARGS="${DAEMON_ARGS:--config /etc/logstash-forwarder -spool-size 100 -log-to-syslog}" start() { - echo -n $"Starting $NAME: " - nohup $DAEMON $DAEMON_ARGS >/dev/null 2>&1 & - RETVAL=$? - PID=$! - echo $PID > $PIDFILE - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME + echo -n $"Starting $prog: " + nohup $DAEMON $DAEMON_ARGS >/dev/null 2>&1 & + retval=$? + pid=$! + echo $pid > $pidfile + if [ rh_status_q ]; then + touch $lockfile + success + echo + fi + return $retval } stop() { - echo -n $"Stopping $NAME: " - killproc -p "$PIDFILE" $DAEMON - RETVAL=$? - [ -f "$PIDFILE" ] && rm -f "$PIDFILE" - echo - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$NAME + echo -n $"Stopping $prog: " + killproc -p "$pidfile" $prog + retval=$? + [ -f "$pidfile" ] && rm -f $pidfile + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart } -restart () { - stop - start +force_reload() { + restart } -RETVAL=0 +rh_status() { + status -p $pidfile $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} case "$1" in - start) - status -p $PIDFILE $NAME>/dev/null - RET=$? - if [ $RET -ne 0 ];then - start - fi - ;; - stop) - stop - ;; - restart|reload|force-reload) - restart + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 ;; - condrestart|try-restart) - [ -f /var/lock/subsys/$NAME ] && restart || : - ;; - status) - status -p $PIDFILE $NAME - RETVAL=$? - ;; - *) - echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - RETVAL=1 + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + status) + rh_status + ;; + *) + echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 esac - -exit $RETVAL +exit $? From 38e5d7df8eb95c45d3ef1c5449e08ea4a64100ed Mon Sep 17 00:00:00 2001 From: Daniel Werdermann Date: Thu, 6 Nov 2014 17:12:20 +0100 Subject: [PATCH 10/11] set stdin to /dev/null --- logstash-forwarder.rpm.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init index 5b5853d9..ceff06cb 100644 --- a/logstash-forwarder.rpm.init +++ b/logstash-forwarder.rpm.init @@ -35,7 +35,7 @@ DAEMON_ARGS="${DAEMON_ARGS:--config /etc/logstash-forwarder -spool-size 100 -log start() { echo -n $"Starting $prog: " - nohup $DAEMON $DAEMON_ARGS >/dev/null 2>&1 & + nohup $DAEMON $DAEMON_ARGS /dev/null 2>&1 & retval=$? pid=$! echo $pid > $pidfile From d0727cd17b99775ea4bec7c1546c730be8b30cdc Mon Sep 17 00:00:00 2001 From: "daniel.werdermann" Date: Wed, 19 Nov 2014 13:42:08 +0100 Subject: [PATCH 11/11] set execution permissions --- logstash-forwarder.rpm.init | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 logstash-forwarder.rpm.init diff --git a/logstash-forwarder.rpm.init b/logstash-forwarder.rpm.init old mode 100644 new mode 100755