Current Path : /etc/rc.d/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //etc/rc.d/random |
#!/bin/sh # # $FreeBSD: release/9.1.0/etc/rc.d/random 180563 2008-07-16 19:22:48Z dougb $ # # PROVIDE: random # REQUIRE: var initrandom # BEFORE: netif # KEYWORD: nojail shutdown . /etc/rc.subr name="random" start_cmd="random_start" stop_cmd="random_stop" feed_dev_random() { if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null fi } random_start() { # Reseed /dev/random with previously stored entropy. case ${entropy_dir} in [Nn][Oo]) ;; *) entropy_dir=${entropy_dir:-/var/db/entropy} if [ -d "${entropy_dir}" ]; then if [ -w /dev/random ]; then for seedfile in ${entropy_dir}/*; do feed_dev_random "${seedfile}" done fi fi ;; esac case ${entropy_file} in [Nn][Oo] | '') ;; *) if [ -w /dev/random ]; then feed_dev_random "${entropy_file}" feed_dev_random /var/db/entropy-file fi ;; esac } random_stop() { # Write some entropy so when the machine reboots /dev/random # can be reseeded # case ${entropy_file} in [Nn][Oo] | '') ;; *) echo -n 'Writing entropy file:' rm -f ${entropy_file} 2> /dev/null oumask=`umask` umask 077 if touch ${entropy_file} 2> /dev/null; then entropy_file_confirmed="${entropy_file}" else # Try this as a reasonable alternative for read-only # roots, diskless workstations, etc. rm -f /var/db/entropy-file 2> /dev/null if touch /var/db/entropy-file 2> /dev/null; then entropy_file_confirmed=/var/db/entropy-file fi fi case ${entropy_file_confirmed} in '') warn 'write failed (read-only fs?)' ;; *) dd if=/dev/random of=${entropy_file_confirmed} \ bs=4096 count=1 2> /dev/null echo '.' ;; esac umask ${oumask} ;; esac } load_rc_config $name run_rc_command "$1"