1#!/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 99