diff --git a/UPDATING b/UPDATING index c2e7a658c65e..1fb14a96880b 100644 --- a/UPDATING +++ b/UPDATING @@ -27,6 +27,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20241025: + The support for the rc_fast_and_loose variable has been removed from + rc.subr(8). Users setting rc_fast_and_loose on their systems are + advised to make sure their customizations to rc service scripts + do not depend on having a single shell environment shared across + all the rc service scripts during booting and shutdown. + 20241013: The ciss driver was updated to cope better with hotplug events that caused it to panic before, and to support more than 48 drives attached diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 58e30c897897..dc2cc06bb806 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -1798,9 +1798,6 @@ _run_rc_killcmd() # return value from the script. # If `file' ends with `.sh' and lives in /etc/rc.d, ignore it as it's # an old-style startup file. -# If `file' ends with `.sh' and does not live in /etc/rc.d, it's sourced -# into the current environment if $rc_fast_and_loose is set; otherwise -# it is run as a child process. # If `file' appears to be a backup or scratch file, ignore it. # Otherwise if it is executable run as a child process. # @@ -1836,8 +1833,6 @@ run_rc_script() if [ -n "$rc_boottrace" ]; then boottrace_fn "$_file" "$_arg" - elif [ -n "$rc_fast_and_loose" ]; then - set $_arg; . $_file else ( trap "echo Script $_file interrupted >&2 ; kill -QUIT $$" 3 trap "echo Script $_file interrupted >&2 ; exit 1" 2 @@ -1909,19 +1904,8 @@ boottrace_fn() _file=$1 _arg=$2 - if [ -n "$rc_fast_and_loose" ]; then - boottrace_sysctl "$_file start" - set $_arg; . $_file - boottrace_sysctl "$_file done" - else - _boot="${_boot}" rc_fast="${rc_fast}" autoboot="${autoboot}" \ - $boottrace_cmd "$_file" "$_arg" - fi -} - -boottrace_sysctl() -{ - ${SYSCTL} kern.boottrace.boottrace="$1" + _boot="${_boot}" rc_fast="${rc_fast}" autoboot="${autoboot}" \ + $boottrace_cmd "$_file" "$_arg" } # diff --git a/share/man/man8/rc.subr.8 b/share/man/man8/rc.subr.8 index 36d7d4543e52..1fd5041cecd8 100644 --- a/share/man/man8/rc.subr.8 +++ b/share/man/man8/rc.subr.8 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd September 22, 2024 +.Dd October 23, 2024 .Dt RC.SUBR 8 .Os .Sh NAME @@ -1017,41 +1017,27 @@ and to enable tracing if any of those tags appear in .Va DEBUG_SH . .Pp -The startup behaviour of +.Ic run_rc_script +executes .Ar file -depends upon the following checks: +unless: .Bl -enum .It -If .Ar file ends in -.Pa .sh , -it is sourced into the current shell. +.Pa .sh +and lives in +.Pa /etc/rc.d . .It -If .Ar file appears to be a backup or scratch file -(e.g., with a suffix of -.Pa ~ , # , .OLD , +.Po e.g., with a suffix of +.Pa ~ , # , .OLD , ,v , or -.Pa .orig ) , -ignore it. +.Pa .orig Pc . .It -If .Ar file -is not executable, ignore it. -.It -If the -.Xr rc.conf 5 -variable -.Va rc_fast_and_loose -is empty, -source -.Ar file -in a sub shell, -otherwise source -.Ar file -into the current shell. +is not executable. .El .It Ic run_rc_scripts Oo options Oc file ... Call