1#!/bin/sh 2#
| 1#!/bin/sh 2#
|
3# $FreeBSD: head/etc/rc.d/sysctl 180563 2008-07-16 19:22:48Z dougb $
| 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
| 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()
| 19# 20# Read in a file containing sysctl settings and set things accordingly. 21# 22parse_file()
|
20{
| 23{
|
21 # 22 # Read in /etc/sysctl.conf and set things accordingly 23 # 24 if [ -f /etc/sysctl.conf ]; then
| 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 *)
| 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
| 39 sysctl "${var}"
|
42 ;; 43 esac
| 40 ;; 41 esac
|
44 elif [ "$1" = "last" ]; then
| 42 elif [ "$2" = "last" ]; then
|
45 warn "sysctl ${mib} does not exist." 46 fi 47 ;; 48 esac
| 43 warn "sysctl ${mib} does not exist." 44 fi 45 ;; 46 esac
|
49 done < /etc/sysctl.conf
| 47 done < $1
|
50 fi 51} 52
| 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
|
53load_rc_config $name 54run_rc_command "$1"
| 58load_rc_config $name 59run_rc_command "$1"
|