#!/bin/sh # # $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $ # $FreeBSD: src/etc/rc.d/dhclient,v 1.20.2.4 2007/03/10 14:07:01 yar Exp $ # $DragonFly: src/etc/rc.d/dhclient,v 1.10 2007/07/10 22:36:01 swildner Exp $ # # PROVIDE: dhclient # KEYWORD: nojail nostart # . /etc/rc.subr . /etc/network.subr name="dhclient" rcvar= start_cmd="dhclient_start" stop_cmd="dhclient_stop" dhclient_start() { # prevent unnecessary restarts # XXX: dhclient had better create a pidfile if [ -x /bin/pgrep ]; then pids=`/bin/pgrep -f "dhclient: $ifn(\$| .*)"` if [ -n "$pids" ]; then exit 0 fi fi # Override for $ifn specific flags (see rc.subr for $flags setting) eval specific=\$dhclient_flags_$ifn if [ -z "$flags" -a -n "$specific" ]; then rc_flags=$specific fi # eval specific=\$background_dhclient_$ifn # if [ -n "$specific" ]; then # if checkyesno background_dhclient_$ifn; then # rc_flags="${rc_flags} -b" # fi # elif checkyesno background_dhclient; then # rc_flags="${rc_flags} -b" # fi ${dhclient_program} ${rc_flags} $ifn } dhclient_stop() { ifconfig $ifn down # cause dhclient to die } ifn="$2" load_rc_config $name load_rc_config network if ! dhcpif $ifn; then return 1 fi run_rc_command "$1"