1#!/bin/sh 2# 3# $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $ 4# $FreeBSD: src/etc/rc.d/dhclient,v 1.20.2.4 2007/03/10 14:07:01 yar Exp $ 5# 6 7# PROVIDE: dhclient 8# REQUIRE: FILESYSTEMS 9# KEYWORD: nojail nostart 10 11. /etc/rc.subr 12. /etc/network.subr 13 14name="dhclient" 15rcvar= 16start_cmd="dhclient_start" 17stop_cmd="dhclient_stop" 18 19dhclient_start() 20{ 21 # prevent unnecessary restarts 22 # XXX: dhclient had better create a pidfile 23 if [ -x /bin/pgrep ]; then 24 pids=`/bin/pgrep -f "dhclient: $ifn(\$| .*)"` 25 if [ -n "$pids" ]; then 26 exit 0 27 fi 28 fi 29 30 # Override for $ifn specific flags (see rc.subr for $flags setting) 31 eval specific=\$dhclient_flags_$ifn 32 if [ -z "$flags" -a -n "$specific" ]; then 33 rc_flags=$specific 34 fi 35 36 ${dhclient_program} ${rc_flags} $ifn 37} 38 39dhclient_stop() 40{ 41 ${dhclient_program} -x $ifn 42} 43 44ifn="$2" 45 46load_rc_config $name 47load_rc_config network 48 49if ! dhcpif $ifn; then 50 return 1 51fi 52 53run_rc_command "$1" 54