]> Sergey Matveev's repositories - sgmon.git/blob - start.sh
Cycle through all addresses
[sgmon.git] / start.sh
1 #!/bin/sh -e
2
3 stop() {
4     trap - HUP PIPE INT QUIT TERM EXIT
5     echo | mailx -s "Stopping" "$NOTIFY_EMAIL"
6     for probe in $probes ; do
7         [ -s $probe/state/pid ] || continue
8         echo killing ${probe}
9         pkill -F $probe/state/pid 2>/dev/null || :
10     done
11     for probe in $probes ; do
12         read pid < $probe/state/pid || :
13         [ -n "$pid" ] || continue
14         echo waiting ${probe}
15         wait $pid || :
16     done
17     echo finished
18     exit
19 }
20
21 root="`pwd`"
22 SGMONDIR="$(dirname "$(realpath -- "$0")")"
23 . "$SGMONDIR"/rc
24 probes="$("$SGMONDIR"/probelist.sh)"
25 echo $(echo "$probes" | wc -l) probes | mailx -s "Starting" "$NOTIFY_EMAIL"
26 for probe in $probes ; do
27     cd $probe
28     echo -n starting ${probe}
29     "$SGMONDIR"/run.sh $probe >/dev/null 2>&1 &
30     pid=$!
31     while : ; do
32         if  [ -d state ] ; then
33             break
34         else
35             sleep 0.1
36             echo -n .
37         fi
38     done
39     echo ""
40     echo $pid > state/pid || :
41     cd "$root"
42 done
43 echo OK
44 trap stop HUP PIPE INT QUIT TERM EXIT
45 while : ; do sleep 1 ; done