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() {