Revert "rc: implement parallel boot"

This is not ready yet for prime time

This reverts commit 763db58932874bb47fc6f9322ab81cc947f80991.
This reverts commit f1ab799927c8e93e8f58e5039f287a2ca45675ec.
This reverts commit 6e822e99570fdf4c564be04840a054bccc070222.
This reverts commit 77e1ccbee3ed6c837929e4e232fd07f95bfc8294.
This commit is contained in:
Baptiste Daroussin 2021-03-09 14:25:32 +01:00
parent b3dac3913d
commit f61831d2e8

View File

@ -91,36 +91,22 @@ if ! [ -e ${firstboot_sentinel} ]; then
skip_firstboot="-s firstboot"
fi
# rc_parallel_start default is "NO"
rc_parallel_start=${rc_parallel_start:-NO}
_rc_parallel=''
# enable rcorder -p if /etc/rc.conf rc_parallel_start is "YES"
checkyesno rc_parallel_start && _rc_parallel='-p'
# Do a first pass to get everything up to $early_late_divider so that
# we can do a second pass that includes $local_startup directories
#
files=`rcorder ${skip} ${skip_firstboot} ${_rc_parallel} /etc/rc.d/* 2>/dev/null`
files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* 2>/dev/null`
_rc_elem_done=' '
oldifs="$IFS"
IFS=$'\n'
for _rc_group in ${files}; do
IFS="$oldifs"
for _rc_elem in ${_rc_group}; do
run_rc_script ${_rc_elem} ${_boot} &
_rc_elem_done="${_rc_elem_done}${_rc_elem} "
for _rc_elem in ${files}; do
run_rc_script ${_rc_elem} ${_boot}
_rc_elem_done="${_rc_elem_done}${_rc_elem} "
case "$_rc_elem" in
*/${early_late_divider}) break ;;
esac
done
wait
IFS=$'\n'
case "$_rc_elem" in
*/${early_late_divider}) break ;;
esac
done
unset files local_rc
IFS="$oldifs"
# Now that disks are mounted, for each dir in $local_startup
# search for init scripts that use the new rc.d semantics.
@ -136,21 +122,14 @@ if [ -e ${firstboot_sentinel} ]; then
skip_firstboot=""
fi
files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} ${_rc_parallel} 2>/dev/null`
IFS=$'\n'
for _rc_group in ${files}; do
IFS="$oldifs"
for _rc_elem in ${_rc_group}; do
case "$_rc_elem_done" in
*" $_rc_elem "*) continue ;;
esac
files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} 2>/dev/null`
for _rc_elem in ${files}; do
case "$_rc_elem_done" in
*" $_rc_elem "*) continue ;;
esac
run_rc_script ${_rc_elem} ${_boot} &
done
wait
IFS=$'\n'
run_rc_script ${_rc_elem} ${_boot}
done
IFS="$oldifs"
# Remove the firstboot sentinel, and reboot if it was requested.
# Be a bit paranoid about removing it to handle the common failure