From d5c04c6f999989a71d0e162413b46634031de26f Mon Sep 17 00:00:00 2001 From: cperciva Date: Tue, 3 Dec 2013 21:55:57 +0000 Subject: 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 --- etc/rc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'etc') diff --git a/etc/rc b/etc/rc index fd5ff85..21efc18 100644 --- a/etc/rc +++ b/etc/rc @@ -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" -- cgit v1.1