summaryrefslogtreecommitdiff
blob: 0a844b9dd5913accaa17f31c653218ffcaa91683 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

LS_USER="${LS_USER:-root}"
LS_GROUP="${LS_GROUP:-root}"
LS_CONFDIR="${LS_CONFDIR:-/etc/logstash/conf.d}"
LS_LOGFILE="${LS_LOGFILE:-/var/log/logstash/logstash.log}"
LS_PIDFILE="${LS_PIDFILE:-/run/logstash/logstash.pid}"
LS_NICE="${LS_NICE:-19}"
LS_OPEN_FILES="${LS_OPEN_FILES:-16384}"
LS_HEAP_SIZE="${LS_HEAP_SIZE:-500m}"

command="/opt/logstash/bin/logstash"
command_args="agent --config ${LS_CONFDIR}/{*}.conf --log ${LS_LOGFILE} ${LS_OPTS}"
extra_commands="checkconfig"
command_background="true"
start_stop_daemon_args="--nicelevel ${LS_NICE} \
	--user ${LS_USER}:${LS_GROUP} \
	--env LS_HEAP_SIZE=${LS_HEAP_SIZE}"
pidfile="${LS_PIDFILE}"

depend() {
	use net
	after elasticsearch
}

checkconfig() {
	ebegin "Checking your configuration"
	${command} ${command_args} --configtest
	eend $? "Configuration error. Please fix your configuration files."
}

start_pre() {
	checkconfig || return 1

	checkpath -d -o "${LS_USER}":"${LS_GROUP}" -m750 "$(dirname "${LS_PIDFILE}")"
	checkpath -d -o "${LS_USER}":"${LS_GROUP}" -m750 "$(dirname "${LS_LOGFILE}")"
	checkpath -f -o "${LS_USER}":"${LS_GROUP}" -m640 "${LS_LOGFILE}"

	rc_ulimit="-n ${LS_OPEN_FILES}"
}

stop() {
	ebegin "Stopping logstash"
	start-stop-daemon --stop \
		--pidfile="${LS_PIDFILE}" \
		--retry=TERM/5/KILL/5
}