#!/sbin/runscript # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 URANDOM_SEED=${URANDOM_SEED:-/var/run/random-seed} description="Initializes the random number generator." depend() { need localmount } save_seed() { local poolsize=1 if [ -e /proc/sys/kernel/random/poolsize ] ; then poolsize=$(($(cat /proc/sys/kernel/random/poolsize) / 4096)) fi ( # sub shell to prevent umask pollution umask 077 dd if=/dev/urandom of="${URANDOM_SEED}" count=${poolsize} 2>/dev/null ) } start() { [ -c /dev/urandom ] || return if [ -f "${URANDOM_SEED}" ] ; then cat "${URANDOM_SEED}" > /dev/urandom fi if ! rm -f "${URANDOM_SEED}" ; then ewarn "Skipping ${URANDOM_SEED} initialization (ro root?)" return 0 fi ebegin "Initializing random number generator" save_seed eend $? "Error initializing random number generator" } stop() { ebegin "Saving random seed" # Carry a random seed from shut-down to start-up; # see documentation in linux/drivers/char/random.c save_seed eend $? "Failed to save random seed" } # vim: set ts=4 :