less(1): Regenerate defines.h and update Makefile
[dragonfly.git] / etc / rc.d / sysctl
blobeb433eedd83d99ca936ee152b4b8912ffe855555
1 #!/bin/sh
3 # $NetBSD: sysctl,v 1.12 2002/04/29 12:10:23 lukem Exp $
4 # $FreeBSD: src/etc/rc.d/sysctl,v 1.12 2003/04/24 08:20:47 mtm Exp $
7 # PROVIDE: sysctl
8 # REQUIRE: FILESYSTEMS
9 # REQUIRE: modules
10 # BEFORE: NETWORKING
12 . /etc/rc.subr
14 name="sysctl"
15 required_files="/etc/sysctl.conf"
16 stop_cmd=":"
17 start_cmd="sysctl_start"
18 reload_cmd="sysctl_start"
19 lastload_cmd="sysctl_start last"
20 extra_commands="reload lastload"
22 sysctl_start()
24 local config extra mib val old_val output
26 if [ ! -f "/etc/sysctl.conf" ]; then
27 return
30 # NOTE: Do not miss the last line when it does not end with a LF.
31 while read config extra || [ -n "${config}" ]; do
32 case ${config} in
33 \#*|'')
34 continue
36 *[^=]=[^=]*)
37 mib=${config%=*}
38 val=${config#*=}
41 warn "invalid syntax: ${config}"
42 continue
44 esac
46 if old_val=$(${SYSCTL_N} -q ${mib}); then
47 debug "sysctl '${mib}': '${old_val}' -> '${val}'"
48 if [ "${old_val}" != "${val}" ]; then
49 output=$(${SYSCTL_W} ${mib}=${val})
50 echo ${output}
52 elif [ "$1" = "last" ]; then
53 warn "sysctl '${mib}' does not exist."
55 done < /etc/sysctl.conf
58 load_rc_config $name
59 run_rc_command "$1"