]>
Commit | Line | Data |
---|---|---|
3c0ef626 | 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 |