sysctl revision 181070
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/sysctl 181070 2008-07-31 21:57:35Z jhb $
4#
5
6# PROVIDE: sysctl
7# REQUIRE: root
8# BEFORE:  DAEMON
9
10. /etc/rc.subr
11
12name="sysctl"
13stop_cmd=":"
14start_cmd="sysctl_start"
15reload_cmd="sysctl_start"
16lastload_cmd="sysctl_start last"
17extra_commands="reload lastload"
18
19#
20# Read in a file containing sysctl settings and set things accordingly.
21#
22parse_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
51sysctl_start()
52{
53
54	parse_file /etc/sysctl.conf $1
55	parse_file /etc/sysctl.conf.local $1
56}
57
58load_rc_config $name
59run_rc_command "$1"
60