sysctl revision 197139
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/sysctl 197139 2009-09-12 22:13:41Z hrs $ 4# 5 6# PROVIDE: sysctl 7# REQUIRE: root 8# BEFORE: FILESYSTEMS 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 if ! sysctl "${var}" >/dev/null 2>&1; then 40 warn "unable to set ${var}" 41 fi 42 ;; 43 esac 44 elif [ "$2" = "last" ]; then 45 warn "sysctl ${mib} does not exist." 46 fi 47 ;; 48 esac 49 done < $1 50 fi 51} 52 53sysctl_start() 54{ 55 56 parse_file /etc/sysctl.conf $1 57 parse_file /etc/sysctl.conf.local $1 58} 59 60load_rc_config $name 61run_rc_command "$1" 62