When using process substitution with status(), the resulting /dev/fd/* might 
get lost before it is actualy used. This happens in case a custom stat_busy() 
forks a subshell.
---
 rc.sysinit |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/rc.sysinit b/rc.sysinit
index fca8b43..a63da9b 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -238,8 +238,9 @@ stat_done
                eval 'echo "$HOSTNAME" > /proc/sys/kernel/hostname'
 
 # Flush old locale settings and set user defined locale
-status "Setting Locale: ${LOCALE:=en_US}" \
-       install -Tm 0755 <(echo "export LANG=$LOCALE") /etc/profile.d/locale.sh
+stat_busy "Setting Locale: ${LOCALE:=en_US}"
+       echo "export LANG=$LOCALE" > /etc/profile.d/locale.sh &&
+       chmod 0755 /etc/profile.d/locale.sh && stat_done || stat_fail
 
 if [[ ${LOCALE,,} =~ utf ]]; then
        stat_busy "Setting Consoles to UTF-8 mode"
-- 
1.7.1

Reply via email to