All pastes #835461 Raw Edit

urandom007

public text v1 · immutable
#835461 ·published 2007-12-28 21:46 UTC
rendered paste body
#! /bin/sh
### BEGIN INIT INFO
# Provides:          urandom
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     S
# Default-Stop:      0 6
# Short-Description: Save and restore random seed between restarts.
# Description        This script saves the random seed between restarts.
#                    It is called from the boot, halt and reboot scripts.
### END INIT INFO

[ -c /dev/urandom ] || exit 0

PATH=/sbin:/usr/sbin:/bin:/usr/bin
SAVEDFILE=/var/lib/urandom/random-seed
POOLSIZE=512
[ -f /proc/sys/kernel/random/poolsize ] && POOLSIZE="$(cat /proc/sys/kernel/random/poolsize)"
. /lib/init/vars.sh

. /lib/lsb/init-functions

case "$1" in
  start|"")
	 echo "Initializing random number generator..."
            random_seed=/var/run/random-seed
            # Carry a random seed from start-up to start-up
            # Load and then save the whole entropy pool
            if [ -f $random_seed ] 
	    then
                cat $random_seed >/dev/urandom
            else
                touch $random_seed
            fi
            chmod 600 $random_seed
            poolfile=/proc/sys/kernel/random/poolsize
            [ -r $poolfile ] && bytes=‘cat $poolfile‘ || bytes=512
            dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
	    ;;
  stop)
	# Carry a random seed from shut-down to start-up
        # Save the whole entropy pool
            echo "Saving random seed..."
            random_seed=/var/run/random-seed
            touch $random_seed
            chmod 600 $random_seed
            poolfile=/proc/sys/kernel/random/poolsize
            [ -r $poolfile ] && bytes=‘cat $poolfile‘ || bytes=512
            dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
	    ;;
  restart|reload|force-reload)
	echo "Error: argument '$1' not supported" >&2
	exit 3
	;;
  *)
	echo "Usage: urandom start|stop" >&2
	exit 3
	;;
esac

: