xref: /dragonfly/etc/rc.d/initrandom (revision 71126e33)
1#!/bin/sh
2#
3# $FreeBSD: src/etc/rc.d/initrandom,v 1.1 2002/06/13 22:14:36 gordon Exp $
4# $DragonFly: src/etc/rc.d/initrandom,v 1.4 2004/01/26 17:21:15 rob Exp $
5#
6
7# PROVIDE: initrandom
8# REQUIRE: initdiskless
9# BEFORE: disks
10# KEYWORD: DragonFly
11
12. /etc/rc.subr
13
14name="initrandom"
15start_cmd="initrandom_start"
16stop_cmd=":"
17
18feed_dev_random()
19{
20	if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then
21		cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null
22	fi
23}
24
25initrandom_start()
26{
27	echo '.'
28
29	# First pass at reseeding /dev/random.
30	#
31	case ${entropy_file} in
32	[Nn][Oo] | '')
33		;;
34	*)
35		if [ -w /dev/random ]; then
36			feed_dev_random "${entropy_file}"
37		fi
38		;;
39	esac
40
41	# XXX temporary until we can get the entropy
42	# harvesting rate up
43	# Entropy below is not great,
44	# but better than nothing.
45	( ps -fauxww; sysctl -a; date; df -ib; dmesg; ps -fauxww; ) \
46	    2>&1 | dd of=/dev/random bs=8k 2>/dev/null
47	cat /bin/ls | dd of=/dev/random bs=8k 2>/dev/null
48}
49
50load_rc_config random
51run_rc_command "$1"
52