diff options
| author | Doug Barton <dougb@FreeBSD.org> | 2002-03-17 20:14:11 +0000 |
|---|---|---|
| committer | Doug Barton <dougb@FreeBSD.org> | 2002-03-17 20:14:11 +0000 |
| commit | c84f8c0e1788e3d4765e26f4bc1ac55a7a0fb5b2 (patch) | |
| tree | f7138699f813eeaef053897d02a89ef59ec66f51 | |
| parent | 6de2a2e8a5ecc812a85e5933d42ce57fecd9a922 (diff) | |
Notes
| -rw-r--r-- | etc/rc | 5 | ||||
| -rw-r--r-- | etc/rc.d/sysctl | 18 | ||||
| -rw-r--r-- | etc/rc.sysctl | 18 |
3 files changed, 36 insertions, 5 deletions
@@ -404,8 +404,7 @@ esac # Early pass to set the variables we can # if [ -r /etc/rc.sysctl ]; then - echo 'Warnings here may be due to modules that have not been loaded yet' - . /etc/rc.sysctl + . /etc/rc.sysctl first fi # Configure serial devices @@ -918,7 +917,7 @@ fi # Late pass to set variables we missed the first time # if [ -r /etc/rc.sysctl ]; then - . /etc/rc.sysctl + . /etc/rc.sysctl last fi # Raise kernel security level. This should be done only after `fsck' has diff --git a/etc/rc.d/sysctl b/etc/rc.d/sysctl index bedddb636697..1e315f2eb239 100644 --- a/etc/rc.d/sysctl +++ b/etc/rc.d/sysctl @@ -38,7 +38,23 @@ if [ -f /etc/sysctl.conf ]; then \#*|'') ;; *) - sysctl ${var} + 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 diff --git a/etc/rc.sysctl b/etc/rc.sysctl index bedddb636697..1e315f2eb239 100644 --- a/etc/rc.sysctl +++ b/etc/rc.sysctl @@ -38,7 +38,23 @@ if [ -f /etc/sysctl.conf ]; then \#*|'') ;; *) - sysctl ${var} + 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 |
