diff options
Diffstat (limited to 'net/isc-dhcp3-server/files/isc-dhcpd.sh.sample')
-rw-r--r-- | net/isc-dhcp3-server/files/isc-dhcpd.sh.sample | 98 |
1 files changed, 34 insertions, 64 deletions
diff --git a/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample b/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample index 17472ab3bb71..63bc57ba0f3d 100644 --- a/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample +++ b/net/isc-dhcp3-server/files/isc-dhcpd.sh.sample @@ -2,77 +2,47 @@ # # $FreeBSD$ # -# Start or stop isc-dhcpd. +# PROVIDE: dhcpd +# REQUIRE: DAEMON +# KEYWORD: FreeBSD +# +# Add the following line to /etc/rc.conf to enable dhcpd: +# +# dhcpd_enable="YES" # -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 +# override these variables in /etc/rc.conf +dhcpd_enable=NO +dhcpd_flags= # command option(s) +dhcpd_conf=%%PREFIX%%/etc/dhcpd.conf # configuration file +dhcpd_ifaces= # ethernet interface(s) -rcconf_dir=${PREFIX}/etc -rcconf_file=rc.${rc_file%.sh}.conf -rcconf_path=${rcconf_dir}/${rcconf_file} +dhcpd_precmd () +{ + dhcpd_rcconf=%%PREFIX%%/etc/rc.isc-dhcpd.conf -if [ -f ${rcconf_path} ]; then - . ${rcconf_path} -fi + if [ -f ${dhcpd_rcconf} ]; then + warn "${dhcpd_rcconf} is obsolete, use /etc/rc.conf instead." + . ${dhcpd_rcconf} -program_dir=${PREFIX}/sbin -program_file=dhcpd -program_path=${program_dir}/${program_file} + if [ -n "${dhcpd_options}" -a -z "${rc_flags}" ]; then + warn "dhcpd_options is obsolete, use dhcpd_flags instead." + rc_flags=${dhcpd_options} + fi + fi -config_dir=${PREFIX}/etc -config_file=${program_file}.conf -config_path=${config_dir}/${config_file} + rc_flags="${rc_flags} -cf ${dhcpd_conf} ${dhcpd_ifaces}" +} -pid_dir=/var/run -pid_file=${program_file}.pid -pid_path=${pid_dir}/${pid_file} +. %%RC_SUBR%% -syslog_facility=daemon.err +name=dhcpd +rcvar=$(set_rcvar) -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 +command=%%PREFIX%%/sbin/${name} +pidfile=/var/run/${name}.pid +required_files=${dhcpd_conf} +start_precmd=${name}_precmd -exit 0 +load_rc_config ${name} +run_rc_command "$1" |