svn commit: r219578 - head/etc
Doug Barton
dougb at FreeBSD.org
Sat Mar 12 21:13:08 UTC 2011
Author: dougb
Date: Sat Mar 12 21:13:08 2011
New Revision: 219578
URL: http://svn.freebsd.org/changeset/base/219578
Log:
Use the allexport option in load_rc_config() in order to avoid having
to repeatedly read the conf files. Depending on what is enabled the
files are being read anywhere from 15, 30, or more times currently.
By loading the values in the environment this is reduced to 1, with
perhaps a couple more, again depending on what is enabled.
The speed-up for boot and shutdown is negligible when rc.conf is
on local disk, noticable when accessing files over NFS, and dramatic
when pulling rc.conf values from a database.
This change also includes a minor optimization to the conditional
for $_rc_conf_loaded.
Modified:
head/etc/rc.subr
Modified: head/etc/rc.subr
==============================================================================
--- head/etc/rc.subr Sat Mar 12 20:36:52 2011 (r219577)
+++ head/etc/rc.subr Sat Mar 12 21:13:08 2011 (r219578)
@@ -998,9 +998,8 @@ load_rc_config()
err 3 'USAGE: load_rc_config name'
fi
- if ${_rc_conf_loaded:-false}; then
- :
- else
+ if [ -z "$_rc_conf_loaded" ]; then
+ set -o allexport
if [ -r /etc/defaults/rc.conf ]; then
debug "Sourcing /etc/defaults/rc.conf"
. /etc/defaults/rc.conf
@@ -1010,6 +1009,7 @@ load_rc_config()
. /etc/rc.conf
fi
_rc_conf_loaded=true
+ set +o allexport
fi
if [ -f /etc/rc.conf.d/"$_name" ]; then
debug "Sourcing /etc/rc.conf.d/${_name}"
More information about the svn-src-all
mailing list