#!/sbin/openrc-run # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 extra_commands="checkconfig" extra_started_commands="reload" command="/usr/sbin/haproxy" pidfile="${HAPROXY_PIDFILE:-/run/${SVCNAME}.pid}" configs= if [ -z "${CONFIGS}" ]; then if [ -f "/etc/haproxy/${SVCNAME}.cfg" ]; then CONFIGS=/etc/haproxy/${SVCNAME}.cfg elif [ -f "/etc/${SVCNAME}.cfg" ]; then CONFIGS=/etc/${SVCNAME}.cfg # Deprecated fi fi for conf in $CONFIGS; do configs="${configs} -f ${conf}" done command_args="-D -W -p ${pidfile} ${configs} ${HAPROXY_OPTS}" depend() { need net use dns logger } checkconfig() { if [ -z "${CONFIGS}" ]; then eerror "No config(s) has been specified" return 1 fi for conf in $CONFIGS; do if [ ! -f "${conf}" ]; then eerror "${conf} does not exist!" return 1 fi done ebegin "Checking ${CONFIGS}" $command -q -c $command_args eend $? } start_pre() { if [ "${RC_CMD}" != "restart" ]; then checkconfig || return 1 fi } stop_pre() { if [ "${RC_CMD}" = "restart" ]; then checkconfig || return 1 fi } stop() { local _t _pid _t="$(mktemp)" for _pid in $(cat ${pidfile}) ; do echo "${_pid}" > "${_t}" start-stop-daemon --stop --pidfile="${_t}" done rm -f "${_t}" } reload() { checkconfig || { eerror "Reloading failed, please fix your config(s) first"; return 1; } if [ "$(command -v reload_seamless)" = "reload_seamless" ]; then einfo "Calling user-defined reload_seamless()" reload_seamless || { eerror "reload_seamless() failed!"; return 1; } fi ebegin "Reloading ${SVCNAME}" $command $command_args -sf $(cat "${pidfile}") eend $? }