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 22 umask 022 23 24 PATH=/usr/sbin:/usr/bin:/sbin 25 export PATH 26 27 WHAT='EGD (entropy gathering daemon)' 28 WHAT_PATH=/opt/perl/bin/egd.pl 29 WHAT_CONFIG=/etc/rc.config.d/egd 30 WHAT_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 38 rval=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 44 set_return() { 45 x=$? 46 if [ $x -ne 0 ]; then 47 echo "EXIT CODE: $x" 48 rval=1 # script FAILed 49 fi 50 } 51 52 case $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 ;; 96 esac 97 98 exit $rval 99