diff --git a/libexec/rc/rc b/libexec/rc/rc index 92eb5c48aab7..2cb840e68919 100644 --- a/libexec/rc/rc +++ b/libexec/rc/rc @@ -103,9 +103,10 @@ checkyesno rc_parallel_start && _rc_parallel='-p' files=`rcorder ${skip} ${skip_firstboot} ${_rc_parallel} /etc/rc.d/* 2>/dev/null` _rc_elem_done=' ' +oldifs="$IFS" IFS=$'\n' for _rc_group in ${files}; do - unset IFS + IFS="$oldifs" for _rc_elem in ${_rc_group}; do run_rc_script ${_rc_elem} ${_boot} & _rc_elem_done="${_rc_elem_done}${_rc_elem} " @@ -119,7 +120,7 @@ for _rc_group in ${files}; do done unset files local_rc -unset IFS +IFS="$oldifs" # Now that disks are mounted, for each dir in $local_startup # search for init scripts that use the new rc.d semantics. @@ -138,7 +139,7 @@ fi files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} ${_rc_parallel} 2>/dev/null` IFS=$'\n' for _rc_group in ${files}; do - unset IFS + IFS="$oldifs" for _rc_elem in ${_rc_group}; do case "$_rc_elem_done" in *" $_rc_elem "*) continue ;; @@ -149,7 +150,7 @@ for _rc_group in ${files}; do wait IFS=$'\n' done -unset IFS +IFS="$oldifs" # Remove the firstboot sentinel, and reboot if it was requested. # Be a bit paranoid about removing it to handle the common failure