diff options
Diffstat (limited to 'init.d/urandom')
-rwxr-xr-x | init.d/urandom | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/init.d/urandom b/init.d/urandom new file mode 100755 index 00000000..a09153a5 --- /dev/null +++ b/init.d/urandom @@ -0,0 +1,34 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need localmount +} + +start() { + [ -c /dev/urandom ] || return + if [ -f /var/run/random-seed ] ; then + cat /var/run/random-seed > /dev/urandom + fi + if ! rm -f /var/run/random-seed ; then + ewarn "Skipping /var/run/random-seed initialization (ro root?)" + return 0 + fi + ebegin "Initializing random number generator" + umask 077 + dd if=/dev/urandom of=/var/run/random-seed count=1 2>/dev/null + eend $? "Error initializing random number generator" + umask 022 +} + +stop() { + ebegin "Saving random seed" + # Carry a random seed from shut-down to start-up; + # see documentation in linux/drivers/char/random.c + umask 077 + dd if=/dev/urandom of=/var/run/random-seed count=1 2>/dev/null + eend $? "Failed to save random seed" +} + +# vim:ts=4 |