diff options
author | gordon <gordon@FreeBSD.org> | 2002-07-18 05:00:17 +0000 |
---|---|---|
committer | gordon <gordon@FreeBSD.org> | 2002-07-18 05:00:17 +0000 |
commit | 259601fa05ee9132dd014304b820ec38b47a67e4 (patch) | |
tree | 375610a72b2ea83aa73c7881302e5615e9cb7552 /etc/rc.d/sysctl | |
parent | c8703a911ad83b0f513197689a88ec949871f7ea (diff) | |
download | FreeBSD-src-259601fa05ee9132dd014304b820ec38b47a67e4.zip FreeBSD-src-259601fa05ee9132dd014304b820ec38b47a67e4.tar.gz |
Merge in all the changes that Mike Makonnen has been maintaining for a
while. This is only the script pieces, the glue for the build comes next.
Submitted by: Mike Makonnen <makonnen@pacbell.net>
Reviewed by: silence on -current and -hackers
Prodded by: rwatson
Diffstat (limited to 'etc/rc.d/sysctl')
-rw-r--r-- | etc/rc.d/sysctl | 119 |
1 files changed, 64 insertions, 55 deletions
diff --git a/etc/rc.d/sysctl b/etc/rc.d/sysctl index 1e315f2..c478828 100644 --- a/etc/rc.d/sysctl +++ b/etc/rc.d/sysctl @@ -1,61 +1,70 @@ #!/bin/sh # -# Copyright (c) 1999 Warner Losh -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# +# $NetBSD: sysctl,v 1.12 2002/04/29 12:10:23 lukem Exp $ # $FreeBSD$ # -# -# Read in /etc/sysctl.conf and set things accordingly -# +# PROVIDE: sysctl +# REQUIRE: root ipfilter ipsec +# BEFORE: DAEMON +# KEYWORD: FreeBSD NetBSD + +. /etc/rc.subr + +name="sysctl" +stop_cmd=":" + +case `${CMD_OSTYPE}` in +FreeBSD) + start_cmd="FreeBSD_start" + extra_commands="reload lastload" + reload_cmd="FreeBSD_start" + lastload_cmd="FreeBSD_start last" + ;; +NetBSD) + start_cmd="NetBSD_start" + ;; +esac + +FreeBSD_start() +{ + # + # Read in /etc/sysctl.conf and set things accordingly + # + if [ -f /etc/sysctl.conf ]; then + while read var comments + do + case ${var} in + \#*|'') + ;; + *) + mib=${var%=*} + val=${var#*=} + + if current_value=`${SYSCTL} -n ${mib} 2>/dev/null`; then + case ${current_value} in + ${val}) + ;; + *) + sysctl ${var} + ;; + esac + elif [ "$1" -eq "last" ]; then + warn "sysctl ${mib} does not exits." + fi + ;; + esac + done < /etc/sysctl.conf + fi +} + +NetBSD_start() +{ + if [ -r /etc/sysctl.conf ]; then + echo "Setting sysctl variables:" + ${SYSCTL} -f /etc/sysctl.conf + fi +} -if [ -f /etc/sysctl.conf ]; then - while read var comments - do - case ${var} in - \#*|'') - ;; - *) - mib=${var%=*} - val=${var#*=} - - if current_value=`sysctl -n ${mib} 2>/dev/null`; then - case ${current_value} in - ${val}) ;; - *) - sysctl ${var} - ;; - esac - else - case ${1} in - last) - echo "Warning: sysctl ${mib} does not exist" - ;; - esac - fi - ;; - esac - done < /etc/sysctl.conf -fi +load_rc_config $name +run_rc_command "$1" |