#!/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/sbin/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/sbin/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/sbin/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 $? }