#!/sbin/openrc-run ZENDRITE=${SVCNAME#*.} : ${ZENDRITE_CONFDIR:=${RC_PREFIX%/}/etc/zendrite} if [ -n "${ZENDRITE}" ] && [ ${SVCNAME} != "zendrite" ]; then : ${ZENDRITE_CONFIG:=${ZENDRITE_CONFDIR}/${ZENDRITE}.yaml} : ${ZENDRITE_PIDFILE:=${RC_PREFIX%/}/run/zendrite.${ZENDRITE}.pid} else : ${ZENDRITE_CONFIG:=${ZENDRITE_CONFDIR}/zendrite.yaml} : ${ZENDRITE_PIDFILE:=${RC_PREFIX%/}/run/zendrite.pid} fi if [ -n "${ZENDRITE_USER}" ]; then : # Do nothing, ZENDRITE_USER is set externally. else ZENDRITE_USER='zendrite' fi if [ -n "${ZENDRITE_WORKING_DIRECTORY}" ]; then : # Do nothing, ZENDRITE_WORKING_DIRECTORY is set externally. else ZENDRITE_WORKING_DIRECTORY='${RC_PREFIX%/}/var/lib/zendrite' fi # Where should supervise-daemon write zendrite's stdout to? if [ -n "${ZENDRITE_STDOUT_FILE}" ]; then : # Do nothing, ZENDRITE_STDOUT_FILE is set externally. else ZENDRITE_STDOUT_FILE="${RC_PREFIX%/}/var/log/zendrite/zendrite.stdout" fi # Where should supervise-daemon write zendrite's stderr to? if [ -n "${ZENDRITE_STDERR_FILE}" ]; then : # Do nothing, ZENDRITE_STDERR_FILE is set externally. else ZENDRITE_STDERR_FILE="${RC_PREFIX%/}/var/log/zendrite/zendrite.stderr" fi supervisor=supervise-daemon command="${RC_PREFIX%/}/usr/bin/zendrite" command_args="${ZENDRITE_OPTS} --config ${ZENDRITE_CONFIG}" command_user="${ZENDRITE_USER}:${ZENDRITE_USER}" output_log="${ZENDRITE_STDOUT_FILE}" error_log="${ZENDRITE_STDERR_FILE}" directory="${ZENDRITE_WORKING_DIRECTORY}" # https://github.com/OpenRC/openrc/blob/master/service-script-guide.md#dont-restartreload-with-a-broken-config checkconfig() { test -f "${ZENDRITE_CONFIG}" || { echo "\"${ZENDRITE_CONFIG}\" does not exist or is not a regular file." >&2 return 1 } } start_pre() { [ "$RC_CMD" != "restart" ] && { checkconfig || return $? } # Create the log and home directories and make sure they are owned by the # service user so it can write into them. checkpath -d -o ${ZENDRITE_USER}:${ZENDRITE_USER} ${ZENDRITE_STDOUT_FILE%/*} checkpath -d -o ${ZENDRITE_USER}:${ZENDRITE_USER} ${ZENDRITE_WORKING_DIRECTORY} } stop_pre() { [ "$RC_CMD" = "restart" ] && { checkconfig || return $? } return 0 }