sysctl revision 113959
1113674Smtm#!/bin/sh
2113674Smtm#
3113674Smtm# $NetBSD: sysctl,v 1.12 2002/04/29 12:10:23 lukem Exp $
4113674Smtm# $FreeBSD: head/etc/rc.d/sysctl 113959 2003-04-24 08:20:47Z mtm $
5113674Smtm#
6113674Smtm
7113674Smtm# PROVIDE: sysctl
8113674Smtm# REQUIRE: root
9113674Smtm# BEFORE:  DAEMON
10113674Smtm# KEYWORD: FreeBSD NetBSD
11113674Smtm
12113674Smtm. /etc/rc.subr
13113674Smtm
14113674Smtmname="sysctl"
15113674Smtmstop_cmd=":"
16113674Smtm
17113674Smtmcase ${OSTYPE} in
18113674SmtmFreeBSD)
19113674Smtm	start_cmd="FreeBSD_start"
20113674Smtm	extra_commands="reload lastload"
21113674Smtm	reload_cmd="FreeBSD_start"
22113674Smtm	lastload_cmd="FreeBSD_start last"
23113674Smtm	;;
24113674SmtmNetBSD)
25113674Smtm	start_cmd="NetBSD_start"
26113674Smtm	;;
27113674Smtmesac
28113674Smtm
29126392SgreenFreeBSD_start()
30136224Smtm{
31113674Smtm	#
32113674Smtm	# Read in /etc/sysctl.conf and set things accordingly
33113674Smtm	#
34113674Smtm	if [ -f /etc/sysctl.conf ]; then
35113674Smtm		while read var comments
36113674Smtm		do
37113674Smtm			case ${var} in
38113674Smtm			\#*|'')
39113674Smtm				;;
40113674Smtm			*)
41117021Smtm				mib=${var%=*}
42113674Smtm				val=${var#*=}
43113674Smtm
44113674Smtm				if current_value=`${SYSCTL} -n ${mib} 2>/dev/null`; then
45132892Smtm					case ${current_value} in
46132892Smtm					${val})
47132892Smtm						;;
48132892Smtm					*)
49117021Smtm						sysctl ${var}
50117021Smtm						;;
51117021Smtm					esac
52117021Smtm				elif [ "$1" = "last" ]; then
53113674Smtm					warn "sysctl ${mib} does not exist."
54149789Skeramida				fi
55149730Sbrooks				;;
56149725Sbrooks			esac
57117021Smtm		done < /etc/sysctl.conf
58117021Smtm	fi
59113674Smtm}
60117021Smtm
61117021SmtmNetBSD_start()
62137070Spjd{
63137070Spjd	if [ -r /etc/sysctl.conf ]; then
64137070Spjd		echo "Setting sysctl variables:"
65117021Smtm		${SYSCTL} -f /etc/sysctl.conf
66117021Smtm	fi
67117021Smtm}
68117021Smtm
69117021Smtmload_rc_config $name
70128714Sphkrun_rc_command "$1"
71128714Sphk