1#!/bin/sh 2#
| 1#!/bin/sh 2#
|
3# $FreeBSD: head/etc/rc.d/sysctl 208307 2010-05-19 19:03:19Z dougb $
| 3# $FreeBSD: head/etc/rc.d/sysctl 244198 2012-12-13 23:32:47Z delphij $
|
4# 5 6# PROVIDE: sysctl 7 8. /etc/rc.subr 9 10name="sysctl"
| 4# 5 6# PROVIDE: sysctl 7 8. /etc/rc.subr 9 10name="sysctl"
|
| 11command="/sbin/sysctl"
|
11stop_cmd=":" 12start_cmd="sysctl_start" 13reload_cmd="sysctl_start" 14lastload_cmd="sysctl_start last" 15extra_commands="reload lastload" 16
| 12stop_cmd=":" 13start_cmd="sysctl_start" 14reload_cmd="sysctl_start" 15lastload_cmd="sysctl_start last" 16extra_commands="reload lastload" 17
|
17# 18# Read in a file containing sysctl settings and set things accordingly. 19# 20parse_file() 21{ 22 if [ -f $1 ]; then 23 while read var comments 24 do 25 case ${var} in 26 \#*|'') 27 ;; 28 *) 29 mib=${var%=*} 30 val=${var#*=} 31 32 if current_value=`${SYSCTL} -n ${mib} 2>/dev/null`; then 33 case ${current_value} in 34 ${val}) 35 ;; 36 *) 37 if ! sysctl "${var}" >/dev/null 2>&1; then 38 warn "unable to set ${var}" 39 fi 40 ;; 41 esac 42 elif [ "$2" = "last" ]; then 43 warn "sysctl ${mib} does not exist." 44 fi 45 ;; 46 esac 47 done < $1 48 fi 49} 50
| |
51sysctl_start() 52{
| 18sysctl_start() 19{
|
| 20 case $1 in 21 last) 22 command_args="-i -f" 23 ;; 24 *) 25 command_args="-f" 26 ;; 27 esac
|
53
| 28
|
54 parse_file /etc/sysctl.conf $1 55 parse_file /etc/sysctl.conf.local $1
| 29 for _f in /etc/sysctl.conf /etc/sysctl.conf.local; do 30 [ -r ${_f} ] && ${command} ${command_args} ${_f} > /dev/null 31 done
|
56} 57 58load_rc_config $name 59run_rc_command "$1"
| 32} 33 34load_rc_config $name 35run_rc_command "$1"
|