The rc system aggressively caches the contents of /etc/rc.conf in order to

improve boot performance; this produces arguably astonishing (non-)results
if /etc/rc.conf is modified during the boot process.

Since performance considerations make it infeasible to automatically detect
if the cached /etc/rc.conf parameters should be invalidated, provide a
mechanism for explicitly requesting that /etc/rc.conf be reloaded: Catch
SIGALRM and reload /etc/rc.conf if it is received.

Discussed on:	freebsd-rc
MFC after:	3 days
This commit is contained in:
Colin Percival 2013-12-03 21:55:57 +00:00
parent 1cdbb9ed2b
commit b6ae696fc9

5
etc/rc
View File

@ -71,6 +71,11 @@ fi
. /etc/rc.subr
load_rc_config 'XXX'
# If we receive a SIGALRM, re-source /etc/rc.conf; this allows rc.d
# scripts to perform "boot-time configuration" including enabling and
# disabling rc.d scripts which appear later in the boot order.
trap "_rc_conf_loaded=false; load_rc_config 'XXX'" ALRM
skip="-s nostart"
if [ `/sbin/sysctl -n security.jail.jailed` -eq 1 ]; then
skip="$skip -s nojail"