]> git.pld-linux.org Git - projects/rc-scripts.git/blame - rc.d/init.d/random
Drop all Upstart support
[projects/rc-scripts.git] / rc.d / init.d / random
CommitLineData
12de71be 1#!/bin/sh
7742e157
AF
2#
3# random Script to snapshot random state and reload it at boot time.
4#
8d86e6df 5# chkconfig: 12345 20 80
7742e157 6#
8d86e6df 7# description: Saves and restores system entropy pool for higher quality \
8# random number generation.
38198f50 9#
38198f50 10
7742e157
AF
11# Source function library.
12. /etc/rc.d/init.d/functions
13
720d1741
ER
14# do nothing in vserver
15if is_yes "$VSERVER"; then
16 return
17fi
18
7742e157
AF
19random_seed=/var/run/random-seed
20
2d18ddba
JK
21poolfile=/proc/sys/kernel/random/poolsize
22[ -r $poolfile ] && bytes="$(cat $poolfile)" || bytes=512
23
dad21c53 24start() {
82594fe2 25 # Check if the service is already running?
82594fe2 26 if [ -f /var/lock/subsys/random ]; then
dad21c53
ER
27 return
28 fi
29
dad21c53
ER
30 show "Initializing random number generator"
31 busy
32 # Carry a random seed from start-up to start-up
33 if [ -f $random_seed ]; then
34 cat $random_seed >/dev/urandom
35 else
82594fe2 36 touch $random_seed
dad21c53
ER
37 fi
38 chmod 600 $random_seed
39 dd if=/dev/urandom of=$random_seed count=1 bs=$bytes 2>/dev/null
40 touch /var/lock/subsys/random
41 deltext
42 ok
dad21c53 43}
5e6dfc29 44
dad21c53
ER
45stop() {
46 if [ ! -f /var/lock/subsys/random ]; then
47 return
82594fe2 48 fi
dad21c53
ER
49
50 # Carry a random seed from shut-down to start-up
dad21c53
ER
51 show "Saving random seed"
52 busy
53 touch $random_seed
54 chmod 600 $random_seed
55 dd if=/dev/urandom of=$random_seed count=1 bs=$bytes 2>/dev/null
56
354b37ce 57 rm -f /var/lock/subsys/random >/dev/null 2>&1
dad21c53
ER
58 deltext
59 ok
dad21c53
ER
60}
61
62status() {
63 entropy_avail="$(cat /proc/sys/kernel/random/entropy_avail)"
3488ca13 64 if [ "$entropy_avail" -eq 0 -o ! -c /dev/random ] ; then
38198f50 65 nls "The random data source is missing"
dad21c53 66 RETVAL=1
3488ca13 67 else
2c25e6b5 68 nls "%d bytes of entropy available" $entropy_avail
7742e157 69 fi
dad21c53
ER
70}
71
72# See how we were called.
73case "$1" in
74 start)
75 start
76 ;;
77 stop)
78 stop
79 ;;
80 status)
81 status
7742e157 82 ;;
7742e157 83 *)
5dc4b912 84 msg_usage "$0 {start|stop|status}"
c632d197 85 exit 3
7742e157
AF
86esac
87
88exit 0
This page took 1.743906 seconds and 4 git commands to generate.