sysctl revision 181070
145096Simp#!/bin/sh 245096Simp# 350472Speter# $FreeBSD: head/etc/rc.d/sysctl 181070 2008-07-31 21:57:35Z jhb $ 466830Sobrien# 564446Schris 6100280Sgordon# PROVIDE: sysctl 7113959Smtm# REQUIRE: root 8100280Sgordon# BEFORE: DAEMON 966830Sobrien 10100280Sgordon. /etc/rc.subr 1192516Sdougb 12100280Sgordonname="sysctl" 13100280Sgordonstop_cmd=":" 14124625Smtmstart_cmd="sysctl_start" 15124625Smtmreload_cmd="sysctl_start" 16124625Smtmlastload_cmd="sysctl_start last" 17124622Smtmextra_commands="reload lastload" 18100280Sgordon 19181070Sjhb# 20181070Sjhb# Read in a file containing sysctl settings and set things accordingly. 21181070Sjhb# 22181070Sjhbparse_file() 23100280Sgordon{ 24181070Sjhb if [ -f $1 ]; then 25100280Sgordon while read var comments 26100280Sgordon do 27100280Sgordon case ${var} in 28100280Sgordon \#*|'') 29100280Sgordon ;; 30100280Sgordon *) 31100280Sgordon mib=${var%=*} 32100280Sgordon val=${var#*=} 33100280Sgordon 34100280Sgordon if current_value=`${SYSCTL} -n ${mib} 2>/dev/null`; then 35100280Sgordon case ${current_value} in 36100280Sgordon ${val}) 37100280Sgordon ;; 38100280Sgordon *) 39181070Sjhb sysctl "${var}" 40100280Sgordon ;; 41100280Sgordon esac 42181070Sjhb elif [ "$2" = "last" ]; then 43105968Sfenner warn "sysctl ${mib} does not exist." 44100280Sgordon fi 45100280Sgordon ;; 46100280Sgordon esac 47181070Sjhb done < $1 48100280Sgordon fi 49100280Sgordon} 50100280Sgordon 51181070Sjhbsysctl_start() 52181070Sjhb{ 53181070Sjhb 54181070Sjhb parse_file /etc/sysctl.conf $1 55181070Sjhb parse_file /etc/sysctl.conf.local $1 56181070Sjhb} 57181070Sjhb 58100280Sgordonload_rc_config $name 59100280Sgordonrun_rc_command "$1" 60