mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-03 00:06:58 +03:00
86 lines
1.6 KiB
Plaintext
86 lines
1.6 KiB
Plaintext
#!/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 $?
|
|
}
|