diff options
Diffstat (limited to 'app-admin/puppetdb/files/puppetdb.initd')
-rw-r--r-- | app-admin/puppetdb/files/puppetdb.initd | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/app-admin/puppetdb/files/puppetdb.initd b/app-admin/puppetdb/files/puppetdb.initd new file mode 100644 index 000000000000..29a634e47a9e --- /dev/null +++ b/app-admin/puppetdb/files/puppetdb.initd @@ -0,0 +1,64 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="checkconfig" + +LOGDIR="/var/log/puppetlabs/puppetdb" +RUNDIR="/run/puppetlabs/puppetdb" + +checkconfig() { + if [ ! -x $JAVA_BIN ]; then + eerror "Missing JAVA_BIN." + eend 1 + fi + if [ ! -d $INSTALL_DIR ]; then + eerror "Missing INSTALL_DIR." + eend 1 + fi + if [ ! -e $BOOTSTRAP_CONFIG ]; then + eerror "Missing BOOTSTRAP_CONFIG." + eend 1 + fi + if [ ! -e $CONFIG ]; then + eerror "Missing CONFIG." + eend 1 + fi + if [ ! -n $USER ]; then + eerror "Missing USER." + eend 1 + fi + if [ ! -n $GROUP ]; then + eerror "Missing GROUP." + eend 1 + fi + + checkpath -d -m 0755 "${LOGDIR%/*}" + checkpath -d -m 0755 "${RUNDIR%/*}" + checkpath -d -m 0700 -o "${USER}:${GROUP}" "${LOGDIR}" + checkpath -d -m 0755 -o "${USER}:${GROUP}" "${RUNDIR}" + + JAVA_ARGS="${JAVA_ARGS} -cp '${INSTALL_DIR}/puppetdb.jar' clojure.main -m puppetlabs.puppetdb.main --config ${CONFIG} -b '${BOOTSTRAP_CONFIG}'" + EXEC="${JAVA_BIN} -XX:OnOutOfMemoryError=\"kill -9 %p\" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/puppetlabs/puppetdb -Djava.security.egd=/dev/urandom ${JAVA_ARGS}" +} + +start() { + checkconfig || return 1 + + ebegin "Starting PuppetDB" + start-stop-daemon --start -u "${USER}" -g "${GROUP}" \ + -m --pidfile "${RUNDIR}/puppetdb.pid" \ + -b --exec "/bin/bash" \ + -- -c "exec ${EXEC} >> ${LOGDIR}/daemon.log 2>&1" + local retval=$? + if [ $retval -ne 0 ]; then + ewarn "Error starting puppetdb." + fi + eend $retval +} + +stop() { + ebegin "Stopping PuppetDB" + start-stop-daemon --stop --pidfile "${RUNDIR}/puppetdb.pid" + eend $? +} |