sysctl revision 180563
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/sysctl 180563 2008-07-16 19:22:48Z dougb $
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
19sysctl_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						if ! sysctl "${var}" >/dev/null 2>&1; then
40							warn "unable to set ${var}"
41						fi
42						;;
43					esac
44				elif [ "$1" = "last" ]; then
45					warn "sysctl ${mib} does not exist."
46				fi
47				;;
48			esac
49		done < /etc/sysctl.conf
50	fi
51}
52
53load_rc_config $name
54run_rc_command "$1"
55