#! /bin/sh # # $FreeBSD$ # # Start or stop isc-dhcpd. # rc_file=${0##*/} rc_arg=$1 # override these variables in ${PREFIX}/etc/rc.isc-dhcpd.conf dhcpd_options= # command option(s) dhcpd_ifaces= # ethernet interface(s) if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${rc_file}\$"); then echo "${rc_file}: Cannot determine PREFIX." >&2 echo "Please use the complete pathname." >&2 exit 64 fi rcconf_dir=${PREFIX}/etc rcconf_file=rc.${rc_file%.sh}.conf rcconf_path=${rcconf_dir}/${rcconf_file} if [ -f ${rcconf_path} ]; then . ${rcconf_path} fi program_dir=${PREFIX}/sbin program_file=dhcpd program_path=${program_dir}/${program_file} config_dir=${PREFIX}/etc config_file=${program_file}.conf config_path=${config_dir}/${config_file} pid_dir=/var/run pid_file=${program_file}.pid pid_path=${pid_dir}/${pid_file} syslog_facility=daemon.err case "$rc_arg" in start) if [ ! -x ${program_path} ]; then logger -sp ${syslog_facility} -t ${program_file} \ "unable to start: ${program_path} is missing." exit 72 fi if [ ! -f ${config_path} ]; then logger -sp ${syslog_facility} -t ${program_file} \ "unable to start: ${config_path} is missing." exit 72 fi ${program_path} ${dhcpd_options} ${dhcpd_ifaces} && echo -n " ${program_file}" ;; stop) if [ -r ${pid_path} ]; then kill $(cat ${pid_path}) 2> /dev/null else killall ${program_file} 2> /dev/null fi ;; restart) $0 stop $0 start ;; status) ps -auxww | egrep ${program_file} | egrep -v "($0|egrep)" ;; *) echo "usage: ${rc_file} {start|stop|restart|status}" >&2 exit 64 ;; esac exit 0