mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-19 05:36:38 +02:00
91 lines
1.7 KiB
Bash
91 lines
1.7 KiB
Bash
#!/sbin/openrc-run
|
|
|
|
extra_commands="checkconfig checkzones"
|
|
extra_started_commands="reload"
|
|
: ${NAMED_CONF:=/etc/bind/named.conf}
|
|
|
|
depend() {
|
|
need net
|
|
after firewall entropy
|
|
use logger
|
|
provide dns
|
|
}
|
|
|
|
_get_pidfile() {
|
|
[ -n "${PIDFILE}" ] || PIDFILE=$(\
|
|
/usr/bin/named-checkconf -p ${NAMED_CONF} | grep 'pid-file' | cut -d\" -f2)
|
|
[ -z "${PIDFILE}" ] && PIDFILE=/var/run/named/named.pid
|
|
}
|
|
|
|
checkconfig() {
|
|
ebegin "Checking named configuration"
|
|
|
|
if [ ! -f "${NAMED_CONF}" ] ; then
|
|
eerror "No ${NAMED_CONF} file exists! See the examples in /etc/bind."
|
|
return 1
|
|
fi
|
|
|
|
/usr/bin/named-checkconf ${NAMED_CONF} || {
|
|
eerror "named-checkconf failed! Please fix your config first."
|
|
return 1
|
|
}
|
|
eend 0
|
|
return 0
|
|
}
|
|
|
|
checkzones() {
|
|
ebegin "Checking named configuration and zones"
|
|
/usr/bin/named-checkconf -z -j ${NAMED_CONF}
|
|
eend $?
|
|
}
|
|
|
|
start() {
|
|
local piddir
|
|
ebegin "Starting named"
|
|
_get_pidfile
|
|
piddir="${PIDFILE%/*}"
|
|
if [ ! -d "${piddir}" ]; then
|
|
checkpath -q -d -o root:named -m 0770 "${piddir}" || {
|
|
eend 1
|
|
return 1
|
|
}
|
|
fi
|
|
|
|
checkconfig || { eend 1; return 1; }
|
|
|
|
# create piddir (usually /var/run/named) if necessary, bug 334535
|
|
_get_pidfile
|
|
piddir="${PIDFILE%/*}"
|
|
if [ ! -d "${piddir}" ]; then
|
|
checkpath -q -d -o root:named -m 0770 "${piddir}" || {
|
|
eend 1
|
|
return 1
|
|
}
|
|
fi
|
|
|
|
# In case someone have $CPU set in /etc/conf.d/named
|
|
if [ -n "${CPU}" ] && [ "${CPU}" -gt 0 ]; then
|
|
CPU="-n ${CPU}"
|
|
fi
|
|
|
|
start-stop-daemon --start --pidfile ${PIDFILE} \
|
|
--nicelevel ${NICELEVEL:-0} \
|
|
--exec /usr/sbin/named \
|
|
-- -u named ${CPU} ${OPTS}
|
|
eend $?
|
|
}
|
|
|
|
stop() {
|
|
ebegin "Stopping named"
|
|
_get_pidfile
|
|
start-stop-daemon --stop --quiet --pidfile $PIDFILE
|
|
eend $?
|
|
}
|
|
|
|
reload() {
|
|
checkconfig
|
|
|
|
ebegin "Reloading $name"
|
|
rndc reload
|
|
eend $?
|
|
}
|