# Distributed under the terms of the GNU General Public License v2
# $Id$
-create_tmpdir() {
- local tmpdir="$(mktemp -d -p /tmp logstash-forwarder.XXXXXXXXXX)"
-
- chown logstash:logstash "${tmpdir}" || return 1
- chmod 0750 "${tmpdir}" || return 1
-
- echo "${tmpdir}"
-}
-
-remove_tmpdir() {
- local d=''
- local tmpdir=''
-
- for d in /tmp/logstash-forwarder.??????????; do
- [[ -e ${d} ]] || return 0
- [[ -d ${d} ]] || continue
-
- if ! [[ ${tmpdir} ]]; then
- tmpdir="${d}"
- else
- # There are more directories like that, so better keep them all.
- return 1
- fi
- done
-
- rm -r "${tmpdir}"
-}
-
start() {
local config_file=/etc/logstash-forwarder/logstash-forwarder.conf
- local tmpdir="$(create_tmpdir)"
+ local statedir=/var/lib/logstash-forwarder
- if ! [[ -d ${tmpdir} ]]; then
- eend 1 "Failed to create tmp directory for logstash-forwarder"
+ if ! [[ -d ${statedir} ]]; then
+ eend 1 "logstash state directory is missing: ${statedir}"
return 1
fi
ebegin "Starting logstash-forwarder"
start-stop-daemon --start --exec /usr/bin/logstash-forwarder \
--make-pidfile --pidfile /run/logstash-forwarder.pid \
- --background --wait 100 --chdir "${tmpdir}" \
+ --background --wait 100 --chdir "${statedir}" \
--user logstash --group logstash \
-- -config="${config_file}" ${LOGSTASH_FORWARDER_ARGS}
eend $?
--pidfile /run/logstash-forwarder.pid --user logstash --group logstash
local rc=$?
- if ! remove_tmpdir; then
- ewarn "Failed to remove logstash-forwarder tmp directory"
- fi
-
eend ${rc}
}
dodoc "${PN}".conf.example CHANGELOG README.md
newconfd "${FILESDIR}/${PN}.confd" "${PN}"
newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+
+ local statedir="/var/lib/${PN}"
+ keepdir "$statedir"
+ fowners logstash:logstash "$statedir"
+ fperms 0750 "$statedir"
}
pkg_postinst() {