#!/sbin/openrc-run # Copyright 1999-2019 Gentoo Authors # 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.cli.services --config ${CONFIG} -b '${BOOTSTRAP_CONFIG}' --restart-file /opt/puppetlabs/server/data/puppetdb/restartcounter" 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 $? }