]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - etc/rc.d/sysctl
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.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 #
20 # Read in a file containing sysctl settings and set things accordingly.
21 #
22 parse_file()
23 {
24         if [ -f $1 ]; 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 [ "$2" = "last" ]; then
43                                         warn "sysctl ${mib} does not exist."
44                                 fi
45                                 ;;
46                         esac
47                 done < $1
48         fi
49 }
50
51 sysctl_start()
52 {
53
54         parse_file /etc/sysctl.conf $1
55         parse_file /etc/sysctl.conf.local $1
56 }
57
58 load_rc_config $name
59 run_rc_command "$1"