commit: 8ff07efe8002a7ee0545cac58e6ec9a78c7481d6
Author: Amadeusz Żołnowski <aidecoe <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 15 10:58:13 2015 +0000
Commit: Amadeusz Żołnowski <aidecoe <AT> gentoo <DOT> org>
CommitDate: Sat Aug 15 13:02:25 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ff07efe
app-admin/logstash-forwarder: Keep state at constant path
At every service start initd script used to create random temporary
directory for keeping state, but as of reasons explained in bug #557530
it's better to keep it constant.
Gentoo-Bug: 557530
Package-Manager: portage-2.2.20
.../files/logstash-forwarder.initd | 40 +++-------------------
.../logstash-forwarder-0.4.0.ebuild | 5 +++
2 files changed, 9 insertions(+), 36 deletions(-)
diff --git a/app-admin/logstash-forwarder/files/logstash-forwarder.initd
b/app-admin/logstash-forwarder/files/logstash-forwarder.initd
index 38e09b6..263ea8c 100644
--- a/app-admin/logstash-forwarder/files/logstash-forwarder.initd
+++ b/app-admin/logstash-forwarder/files/logstash-forwarder.initd
@@ -3,47 +3,19 @@
# 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 $?
@@ -55,9 +27,5 @@ stop() {
--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}
}
diff --git a/app-admin/logstash-forwarder/logstash-forwarder-0.4.0.ebuild
b/app-admin/logstash-forwarder/logstash-forwarder-0.4.0.ebuild
index fda9136..a9dbce5 100644
--- a/app-admin/logstash-forwarder/logstash-forwarder-0.4.0.ebuild
+++ b/app-admin/logstash-forwarder/logstash-forwarder-0.4.0.ebuild
@@ -29,6 +29,11 @@ src_install() {
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() {