blob: 919dea7255cd77cb914cc7279d56d637086bad00 [file] [log] [blame]
Kevin Stevesee184da2000-10-18 13:45:40 +00001#!/sbin/sh
2
3#
4# egd.rc: EGD start-up and shutdown script
5#
6
7# Allowed exit values:
8# 0 = success; causes "OK" to show up in checklist.
9# 1 = failure; causes "FAIL" to show up in checklist.
10# 2 = skip; causes "N/A" to show up in the checklist.
11# Use this value if execution of this script is overridden
12# by the use of a control variable, or if this script is not
13# appropriate to execute for some other reason.
14# 3 = reboot; causes the system to be rebooted after execution.
15
16# Input and output:
17# stdin is redirected from /dev/null
18#
19# stdout and stderr are redirected to the /etc/rc.log file
20# during checklist mode, or to the console in raw mode.
21
22umask 022
23
24PATH=/usr/sbin:/usr/bin:/sbin
25export PATH
26
27WHAT='EGD (entropy gathering daemon)'
28WHAT_PATH=/opt/perl/bin/egd.pl
29WHAT_CONFIG=/etc/rc.config.d/egd
30WHAT_LOG=/etc/opt/egd/egd.log
31
32# NOTE: If your script executes in run state 0 or state 1, then /usr might
33# not be available. Do not attempt to access commands or files in
34# /usr unless your script executes in run state 2 or greater. Other
35# file systems typically not mounted until run state 2 include /var
36# and /opt.
37
38rval=0
39
40# Check the exit value of a command run by this script. If non-zero, the
41# exit code is echoed to the log file and the return value of this script
42# is set to indicate failure.
43
44set_return() {
45 x=$?
46 if [ $x -ne 0 ]; then
47 echo "EXIT CODE: $x"
48 rval=1 # script FAILed
49 fi
50}
51
52case $1 in
53'start_msg')
54 echo "Starting $WHAT"
55 ;;
56
57'stop_msg')
58 echo "Stopping $WHAT"
59 ;;
60
61'start')
62 if [ -f $WHAT_CONFIG ] ; then
63 . $WHAT_CONFIG
64 else
65 echo "ERROR: $WHAT_CONFIG defaults file MISSING"
66 fi
67
68
69 if [ "$EGD_START" -eq 1 -a -x $WHAT_PATH ]; then
70 EGD_LOG=${EGD_LOG:-$WHAT_LOG}
71 su egd -c "nohup $WHAT_PATH $EGD_ARGS >$EGD_LOG 2>&1" &&
72 echo $WHAT started
73 set_return
74 else
75 rval=2
76 fi
77 ;;
78
79'stop')
80 pid=`ps -fuegd | awk '$1 == "egd" { print $2 }'`
81 if [ "X$pid" != "X" ]; then
82 if kill "$pid"; then
83 echo "$WHAT stopped"
84 else
85 rval=1
86 echo "Unable to stop $WHAT"
87 fi
88 fi
89 set_return
90 ;;
91
92*)
93 echo "usage: $0 {start|stop|start_msg|stop_msg}"
94 rval=1
95 ;;
96esac
97
98exit $rval