]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/sysctl
When the state of the interface changes rapidly enough (usually due to
[FreeBSD/FreeBSD.git] / etc / rc.d / sysctl
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: sysctl
7 # REQUIRE: root
8 # BEFORE:  DAEMON
9
10 . /etc/rc.subr
11
12 name="sysctl"
13 stop_cmd=":"
14 start_cmd="sysctl_start"
15 reload_cmd="sysctl_start"
16 lastload_cmd="sysctl_start last"
17 extra_commands="reload lastload"
18
19 sysctl_start()
20 {
21         #
22         # Read in /etc/sysctl.conf and set things accordingly
23         #
24         if [ -f /etc/sysctl.conf ]; then
25                 while read var comments
26                 do
27                         case ${var} in
28                         \#*|'')
29                                 ;;
30                         *)
31                                 mib=${var%=*}
32                                 val=${var#*=}
33
34                                 if current_value=`${SYSCTL} -n ${mib} 2>/dev/null`; then
35                                         case ${current_value} in
36                                         ${val})
37                                                 ;;
38                                         *)
39                                                 sysctl "${var}"
40                                                 ;;
41                                         esac
42                                 elif [ "$1" = "last" ]; then
43                                         warn "sysctl ${mib} does not exist."
44                                 fi
45                                 ;;
46                         esac
47                 done < /etc/sysctl.conf
48         fi
49 }
50
51 load_rc_config $name
52 run_rc_command "$1"