mirror of
https://git.freebsd.org/ports.git
synced 2025-05-14 16:21:50 -04:00
81 lines
1.6 KiB
Bash
81 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: apcctrl
|
|
# REQUIRE: SERVERS
|
|
# BEFORE: DAEMON
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Add the following line to /etc/rc.conf[.local] to enable apcctrl
|
|
#
|
|
# apcctrl_enable (bool): Set to "NO" by default.
|
|
# Set it to "YES" to enable apcctrl.
|
|
# apcctrl_flags (str): Custom additional arguments to be passed
|
|
# to apcctrl (default --kill-on-powerfail).
|
|
# apcctrl_configs (str): A list of configs to run multiple instances.
|
|
#
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=apcctrl
|
|
rcvar=apcctrl_enable
|
|
|
|
load_rc_config $name
|
|
|
|
: ${apcctrl_enable="NO"}
|
|
: ${apcctrl_flags="--kill-on-powerfail"}
|
|
|
|
pidfile=/var/run/${name}.pid
|
|
required_files="${apcctrl_configs:-%%ETCDIR%%/apcctrl.conf}"
|
|
command=%%PREFIX%%/sbin/${name}
|
|
restart_cmd=${name}_restart_cmd
|
|
|
|
apcctrl_precmd()
|
|
{
|
|
config=$1
|
|
|
|
dn="`/usr/bin/dirname ${pidfile}`"
|
|
if [ -n "${config}" ]; then
|
|
# Specific config
|
|
base="`/usr/bin/basename ${config} .conf`"
|
|
pidfile="${dn}/${base}.pid"
|
|
command_args="-f ${config} -P ${pidfile}"
|
|
else
|
|
# Default config
|
|
command_args=""
|
|
fi
|
|
}
|
|
|
|
apcctrl_restart_cmd()
|
|
{
|
|
if [ -n "${apcctrl_configs}" ]; then
|
|
# One or more named configs
|
|
for config in ${apcctrl_configs}; do
|
|
apcctrl_precmd ${config}
|
|
run_rc_command stop
|
|
done
|
|
for config in ${apcctrl_configs}; do
|
|
apcctrl_precmd ${config}
|
|
run_rc_command start
|
|
done
|
|
else
|
|
# Default config
|
|
apcctrl_precmd
|
|
run_rc_command stop
|
|
run_rc_command start
|
|
fi
|
|
}
|
|
|
|
if [ "$1" = restart ]; then
|
|
apcctrl_precmd
|
|
run_rc_command $1
|
|
elif [ -n "${apcctrl_configs}" ]; then
|
|
# One or more named configs
|
|
for config in ${apcctrl_configs}; do
|
|
apcctrl_precmd ${config}
|
|
run_rc_command $1
|
|
done
|
|
else
|
|
# Default config
|
|
apcctrl_precmd
|
|
run_rc_command $1
|
|
fi
|