--- functions | 6 ++++++ rc.shutdown | 2 +- rc.sysinit | 12 ++++++------ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/functions b/functions index ab7928f..9374827 100644 --- a/functions +++ b/functions @@ -422,6 +422,12 @@ mount_all() { stat_done } +install_file() { + local file=$1 content=$2 # remaining args go to install directly + shift 2 + install -T "$@" <(printf '%s' "$content") "$file" +} + bootlogd_stop() { [[ -f /run/bootlogd.pid ]] || return 0 touch /var/log/boot diff --git a/rc.shutdown b/rc.shutdown index d16c66a..e32a19c 100755 --- a/rc.shutdown +++ b/rc.shutdown @@ -21,7 +21,7 @@ kill_everything shutdown stat_busy "Saving Random Seed" RANDOM_SEED=/var/lib/misc/random-seed - install -TDm 0600 <(:) $RANDOM_SEED + install_file "$RANDOM_SEED" "" -m 0600 -D POOL_FILE=/proc/sys/kernel/random/poolsize if [[ -r $POOL_FILE ]]; then read POOL_SIZE < $POOL_FILE diff --git a/rc.sysinit b/rc.sysinit index 2d0fdc1..dcc88f5 100755 --- a/rc.sysinit +++ b/rc.sysinit @@ -209,7 +209,7 @@ status "Activating Swap" swapon -a RANDOM_SEED=/var/lib/misc/random-seed [[ -f $RANDOM_SEED ]] && status "Initializing Random Seed" \ - eval 'cat $RANDOM_SEED > /dev/urandom' + install_file /dev/urandom "$(< "$RANDOM_SEED" )" stat_busy "Removing Leftover Files" rm -rf /etc/{nologin,shutdownpid} /forcefsck /tmp/* /tmp/.* &>/dev/null @@ -218,18 +218,18 @@ stat_busy "Removing Leftover Files" [[ ! -L /var/run && ! -L /var/run/daemons ]] && rm -rf /var/run/daemons && ln -s /run/daemons /var/run/daemons - install -Tm 0664 -o root -g utmp <(:) /var/run/utmp + install_file /var/run/utmp "" -m 0664 -o root -g utmp # Keep {x,k,g}dm happy with xorg mkdir -m 1777 /tmp/.{X11,ICE}-unix stat_done [[ $HOSTNAME ]] && status "Setting Hostname: $HOSTNAME" \ - eval 'echo "$HOSTNAME" > /proc/sys/kernel/hostname' + install_file /proc/sys/kernel/hostname "$HOSTNAME" # Flush old locale settings and set user defined locale status "Setting Locale: ${LOCALE:=en_US}" \ - eval 'install -Tm 0755 <(echo "export LANG=$LOCALE") /etc/profile.d/locale.sh' + install_file /etc/profile.d/locale.sh "export LANG=$LOCALE"$'\n' -m 0755 if [[ ${LOCALE,,} =~ utf ]]; then stat_busy "Setting Consoles to UTF-8 mode" @@ -261,9 +261,9 @@ set_consolefont stat_busy "Saving dmesg Log" if [[ -e /proc/sys/kernel/dmesg_restrict ]] && (( $(< /proc/sys/kernel/dmesg_restrict) == 1 )); then - install -Tm 0600 <( dmesg ) /var/log/dmesg.log + install_file /var/log/dmesg.log "$( dmesg )" -m 0600 else - install -Tm 0644 <( dmesg ) /var/log/dmesg.log + install_file /var/log/dmesg.log "$( dmesg )" -m 0644 fi (( $? == 0 )) && stat_done || stat_fail -- 1.7.1