freebsd-ports/dns/knot-resolver/files/kresd.in
Fernando Apesteguía e2e231d0b5 dns/knot-resolver: Fix service status
Add status() function to rc script.

PR:		266320
Reported by:	yonas.yanfa@gmail.com
Approved by:	freebsd@dns.company (maintainer, timeout > 1 month)
2022-10-12 13:58:10 +02:00

75 lines
1.6 KiB
Bash

#!/bin/sh
# PROVIDE: kresd
# REQUIRE: NETWORKING
# BEFORE: SERVERS
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable knot-resolver:
#
# kresd_enable="YES": Set to YES to enable kresd.
# Set to NO by default.
# kresd_config="": Set to %%ETCDIR%%/kresd.conf
# by default.
#
. /etc/rc.subr
name=kresd
rcvar=kresd_enable
load_rc_config ${name}
# set defaults
kresd_enable=${kresd_enable:-"NO"}
kresd_config=${kresd_config:-"%%ETCDIR%%/${name}.conf"}
kresd_user="%%USERS%%"
kresd_group="%%GROUPS%%"
kresd_rundir="/var/run/${name}"
pidfile="${kresd_rundir}/${name}.pid"
procname="%%PREFIX%%/sbin/${name}"
required_files="${kresd_config}"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
command="/usr/sbin/daemon"
command_args="-c -f -S -r -P ${pidfile} -T ${name} -- ${procname} -c ${kresd_config} -n -q ${kresd_rundir}"
kresd_start() {
if [ ! -d /var/run/${name} ]; then
install -d -o ${kresd_user} -g ${kresd_group} -m 700 ${kresd_rundir}
fi
if [ ! -f "${pidfile}" ]; then
echo "starting ${name}..." && \
${command} ${command_args}
echo -e "\e[1A\e[K${name} started."
else
echo "${name} already seems to be running."
fi
}
kresd_stop() {
if [ -f "${pidfile}" ]; then
echo "stopping ${name}..." && \
for pid in `ps waux | grep ${procname} | grep daemon | awk '{print $2}'`; do \
kill -TERM $pid
done
echo -e "\e[1A\e[K${name} stopped."
else
echo "${name} seems to be not running."
fi
}
kresd_status() {
if [ -e "${pidfile}" ]; then
echo "${name} is running on pid $(cat $pidfile)."
return 1
else
echo "${name} is not running."
return 0
fi
}
run_rc_command "$1"