mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
Adding new sysv init style scripts based on pleaserun
This commit is contained in:
parent
31cb21efa2
commit
c783816f44
3 changed files with 300 additions and 4 deletions
|
@ -54,9 +54,9 @@ case $os@$release in
|
||||||
chmod 0755 $destdir/opt/logstash/bin/logstash
|
chmod 0755 $destdir/opt/logstash/bin/logstash
|
||||||
install -m644 logrotate.conf $destdir/etc/logrotate.d/logstash
|
install -m644 logrotate.conf $destdir/etc/logrotate.d/logstash
|
||||||
install -m644 logstash.default $destdir/etc/sysconfig/logstash
|
install -m644 logstash.default $destdir/etc/sysconfig/logstash
|
||||||
install -m755 logstash.sysv.redhat $destdir/etc/init.d/logstash
|
install -m755 logstash.sysv $destdir/etc/init.d/logstash
|
||||||
install -m644 logstash-web.default $destdir/etc/sysconfig/logstash
|
install -m644 logstash-web.default $destdir/etc/sysconfig/logstash
|
||||||
install -m755 logstash-web.sysv.redhat $destdir/etc/init.d/logstash-web
|
install -m755 logstash-web.sysv $destdir/etc/init.d/logstash-web
|
||||||
;;
|
;;
|
||||||
ubuntu@*|debian@*)
|
ubuntu@*|debian@*)
|
||||||
mkdir -p $destdir/etc/logstash/conf.d
|
mkdir -p $destdir/etc/logstash/conf.d
|
||||||
|
@ -70,10 +70,10 @@ case $os@$release in
|
||||||
install -m644 logrotate.conf $destdir/etc/logrotate.d/logstash
|
install -m644 logrotate.conf $destdir/etc/logrotate.d/logstash
|
||||||
install -m644 logstash.default $destdir/etc/default/logstash
|
install -m644 logstash.default $destdir/etc/default/logstash
|
||||||
install -m755 logstash.upstart.ubuntu $destdir/etc/init/logstash.conf
|
install -m755 logstash.upstart.ubuntu $destdir/etc/init/logstash.conf
|
||||||
install -m755 logstash.sysv.debian $destdir/etc/init.d/logstash
|
install -m755 logstash.sysv $destdir/etc/init.d/logstash
|
||||||
install -m644 logstash-web.default $destdir/etc/default/logstash-web
|
install -m644 logstash-web.default $destdir/etc/default/logstash-web
|
||||||
install -m755 logstash-web.upstart.ubuntu $destdir/etc/init/logstash-web.conf
|
install -m755 logstash-web.upstart.ubuntu $destdir/etc/init/logstash-web.conf
|
||||||
install -m755 logstash-web.sysv.debian $destdir/etc/init.d/logstash-web
|
install -m755 logstash-web.sysv $destdir/etc/init.d/logstash-web
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown OS: $os $release"
|
echo "Unknown OS: $os $release"
|
||||||
|
|
149
pkg/logstash-web.sysv
Executable file
149
pkg/logstash-web.sysv
Executable file
|
@ -0,0 +1,149 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Init script for logstash Webserver
|
||||||
|
# Maintained by Elasticsearch
|
||||||
|
# Generated by pleaserun.
|
||||||
|
# Implemented based on LSB Core 3.1:
|
||||||
|
# * Sections: 20.2, 20.3
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: logstash-web
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description:
|
||||||
|
# Description: Starts Logstash webserveras a daemon.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
if [ `id -u` -ne 0 ]; then
|
||||||
|
echo "You need root privileges to run this script"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
name=logstash-web
|
||||||
|
pidfile="/var/run/$name.pid"
|
||||||
|
|
||||||
|
LS_USER=logstash
|
||||||
|
LS_GROUP=logstash
|
||||||
|
LS_HOME=/var/lib/logstash
|
||||||
|
LS_HEAP_SIZE="500m"
|
||||||
|
LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
|
||||||
|
LS_LOG_FILE=/var/log/logstash/$name.log
|
||||||
|
LS_CONF_DIR=/etc/logstash/conf.d
|
||||||
|
LS_OPEN_FILES=16384
|
||||||
|
LS_NICE=19
|
||||||
|
LS_OPTS=""
|
||||||
|
LS_WEB_ADDRESS="0.0.0.0"
|
||||||
|
LS_WEB_PORT=9292
|
||||||
|
|
||||||
|
[ -r /etc/default/$name ] && . /etc/default/$name
|
||||||
|
[ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name
|
||||||
|
|
||||||
|
program=/opt/logstash/bin/logstash
|
||||||
|
args="web -a ${LS_WEB_ADDRESS} -p ${LS_WEB_PORT}"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
|
||||||
|
|
||||||
|
JAVA_OPTS=${LS_JAVA_OPTS}
|
||||||
|
export PATH HOME JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING
|
||||||
|
# Run the program!
|
||||||
|
chroot --userspec $LS_USER:$LS_GROUP / sh -c "
|
||||||
|
cd $LS_HOME
|
||||||
|
nice ${LS_NICE}
|
||||||
|
ulimit -n ${LS_OPEN_FILES}
|
||||||
|
exec \"$program\" $args
|
||||||
|
" > /var/log/logstash/$name.stdout 2> /var/log/logstash/$name.err &
|
||||||
|
|
||||||
|
# Generate the pidfile from here. If we instead made the forked process
|
||||||
|
# generate it there will be a race condition between the pidfile writing
|
||||||
|
# and a process possibly asking for status.
|
||||||
|
echo $! > $pidfile
|
||||||
|
|
||||||
|
echo "$name started."
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
# Try a few times to kill TERM the program
|
||||||
|
if status ; then
|
||||||
|
pid=`cat "$pidfile"`
|
||||||
|
echo "Killing $name (pid $pid) with SIGTERM"
|
||||||
|
kill -TERM $pid
|
||||||
|
# Wait for it to exit.
|
||||||
|
for i in 1 2 3 4 5 ; do
|
||||||
|
echo "Waiting $name (pid $pid) to die..."
|
||||||
|
status || break
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
if status ; then
|
||||||
|
echo "$name stop failed; still running."
|
||||||
|
else
|
||||||
|
echo "$name stopped."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if [ -f "$pidfile" ] ; then
|
||||||
|
pid=`cat "$pidfile"`
|
||||||
|
if kill -0 $pid > /dev/null 2> /dev/null ; then
|
||||||
|
# process by this pid is running.
|
||||||
|
# It may not be our pid, but that's what you get with just pidfiles.
|
||||||
|
# TODO(sissel): Check if this process seems to be the same as the one we
|
||||||
|
# expect. It'd be nice to use flock here, but flock uses fork, not exec,
|
||||||
|
# so it makes it quite awkward to use in this case.
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 2 # program is dead but pid file exists
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 3 # program is not running
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
force_stop() {
|
||||||
|
if status ; then
|
||||||
|
stop
|
||||||
|
status && kill -KILL `cat "$pidfile"`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
status
|
||||||
|
code=$?
|
||||||
|
if [ $code -eq 0 ]; then
|
||||||
|
echo "$name is already running"
|
||||||
|
else
|
||||||
|
start
|
||||||
|
fi
|
||||||
|
exit $code
|
||||||
|
;;
|
||||||
|
stop) stop ;;
|
||||||
|
force-stop) force_stop ;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
code=$?
|
||||||
|
if [ $code -eq 0 ] ; then
|
||||||
|
echo "$name is running"
|
||||||
|
else
|
||||||
|
echo "$name is not running"
|
||||||
|
fi
|
||||||
|
exit $code
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
|
||||||
|
stop && start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|force-stop|status|restart}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $?
|
147
pkg/logstash.sysv
Executable file
147
pkg/logstash.sysv
Executable file
|
@ -0,0 +1,147 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Init script for logstash
|
||||||
|
# Maintained by Elasticsearch
|
||||||
|
# Generated by pleaserun.
|
||||||
|
# Implemented based on LSB Core 3.1:
|
||||||
|
# * Sections: 20.2, 20.3
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: logstash
|
||||||
|
# Required-Start: $remote_fs $syslog
|
||||||
|
# Required-Stop: $remote_fs $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description:
|
||||||
|
# Description: Starts Logstash as a daemon.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
if [ `id -u` -ne 0 ]; then
|
||||||
|
echo "You need root privileges to run this script"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
name=logstash
|
||||||
|
pidfile="/var/run/$name.pid"
|
||||||
|
|
||||||
|
LS_USER=logstash
|
||||||
|
LS_GROUP=logstash
|
||||||
|
LS_HOME=/var/lib/logstash
|
||||||
|
LS_HEAP_SIZE="500m"
|
||||||
|
LS_JAVA_OPTS="-Djava.io.tmpdir=${LS_HOME}"
|
||||||
|
LS_LOG_FILE=/var/log/logstash/$name.log
|
||||||
|
LS_CONF_DIR=/etc/logstash/conf.d
|
||||||
|
LS_OPEN_FILES=16384
|
||||||
|
LS_NICE=19
|
||||||
|
LS_OPTS=""
|
||||||
|
|
||||||
|
[ -r /etc/default/$name ] && . /etc/default/$name
|
||||||
|
[ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name
|
||||||
|
|
||||||
|
program=/opt/logstash/bin/logstash
|
||||||
|
args="agent -f ${LS_CONF_DIR} -l ${LS_LOG_FILE} ${LS_OPTS}"
|
||||||
|
|
||||||
|
start() {
|
||||||
|
|
||||||
|
|
||||||
|
JAVA_OPTS=${LS_JAVA_OPTS}
|
||||||
|
export PATH HOME JAVA_OPTS LS_HEAP_SIZE LS_JAVA_OPTS LS_USE_GC_LOGGING
|
||||||
|
# Run the program!
|
||||||
|
chroot --userspec $LS_USER:$LS_GROUP / sh -c "
|
||||||
|
cd $LS_HOME
|
||||||
|
nice ${LS_NICE}
|
||||||
|
ulimit -n ${LS_OPEN_FILES}
|
||||||
|
exec \"$program\" $args
|
||||||
|
" > /var/log/logstash/$name.stdout 2> /var/log/logstash/$name.err &
|
||||||
|
|
||||||
|
# Generate the pidfile from here. If we instead made the forked process
|
||||||
|
# generate it there will be a race condition between the pidfile writing
|
||||||
|
# and a process possibly asking for status.
|
||||||
|
echo $! > $pidfile
|
||||||
|
|
||||||
|
echo "$name started."
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
# Try a few times to kill TERM the program
|
||||||
|
if status ; then
|
||||||
|
pid=`cat "$pidfile"`
|
||||||
|
echo "Killing $name (pid $pid) with SIGTERM"
|
||||||
|
kill -TERM $pid
|
||||||
|
# Wait for it to exit.
|
||||||
|
for i in 1 2 3 4 5 ; do
|
||||||
|
echo "Waiting $name (pid $pid) to die..."
|
||||||
|
status || break
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
if status ; then
|
||||||
|
echo "$name stop failed; still running."
|
||||||
|
else
|
||||||
|
echo "$name stopped."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if [ -f "$pidfile" ] ; then
|
||||||
|
pid=`cat "$pidfile"`
|
||||||
|
if kill -0 $pid > /dev/null 2> /dev/null ; then
|
||||||
|
# process by this pid is running.
|
||||||
|
# It may not be our pid, but that's what you get with just pidfiles.
|
||||||
|
# TODO(sissel): Check if this process seems to be the same as the one we
|
||||||
|
# expect. It'd be nice to use flock here, but flock uses fork, not exec,
|
||||||
|
# so it makes it quite awkward to use in this case.
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 2 # program is dead but pid file exists
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 3 # program is not running
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
force_stop() {
|
||||||
|
if status ; then
|
||||||
|
stop
|
||||||
|
status && kill -KILL `cat "$pidfile"`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
status
|
||||||
|
code=$?
|
||||||
|
if [ $code -eq 0 ]; then
|
||||||
|
echo "$name is already running"
|
||||||
|
else
|
||||||
|
start
|
||||||
|
fi
|
||||||
|
exit $code
|
||||||
|
;;
|
||||||
|
stop) stop ;;
|
||||||
|
force-stop) force_stop ;;
|
||||||
|
status)
|
||||||
|
status
|
||||||
|
code=$?
|
||||||
|
if [ $code -eq 0 ] ; then
|
||||||
|
echo "$name is running"
|
||||||
|
else
|
||||||
|
echo "$name is not running"
|
||||||
|
fi
|
||||||
|
exit $code
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
|
||||||
|
stop && start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $SCRIPTNAME {start|stop|force-stop|status|restart}" >&2
|
||||||
|
exit 3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit $?
|
Loading…
Add table
Add a link
Reference in a new issue