]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/dhclient
Sleep for one second after calling audit -t to give the audit daemon a
[FreeBSD/FreeBSD.git] / etc / rc.d / dhclient
1 #!/bin/sh
2 #
3 # $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $
4 # $FreeBSD$
5 #
6
7 # PROVIDE: dhclient
8 # KEYWORD: nojail nostart
9 #
10
11 . /etc/rc.subr
12 . /etc/network.subr
13
14 name="dhclient"
15 rcvar=
16 start_cmd="dhclient_start"
17 stop_cmd="dhclient_stop"
18
19 dhclient_start()
20 {
21         # prevent unnecessary restarts
22         # XXX: should use a pidfile
23         if [ -x /usr/bin/pgrep ]; then
24                 pids=`/usr/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         eval specific=\$background_dhclient_$ifn
37         if [ -n "$specific" ]; then
38                 if checkyesno background_dhclient_$ifn; then
39                         rc_flags="${rc_flags} -b"
40                 fi
41         elif checkyesno background_dhclient; then
42                 rc_flags="${rc_flags} -b"
43         fi
44
45         ${dhclient_program} ${rc_flags} $ifn
46 }
47
48 dhclient_stop()
49 {
50         ifconfig $ifn down      # cause dhclient to die
51 }
52
53 ifn="$2"
54
55 load_rc_config $name
56
57 if ! dhcpif $ifn; then
58         return 1
59 fi
60
61 run_rc_command "$1"