#!/bin/sh -e stop() { trap - HUP PIPE INT QUIT TERM EXIT echo ... | mailx -s "Stopping" "$NOTIFY_EMAIL" for probe in $probes ; do [ -s $probe/pid ] || continue echo killing ${probe}... pkill -F $probe/pid 2>/dev/null || : done for probe in $probes ; do read pid < $probe/pid || : [ -n "$pid" ] || continue echo waiting ${probe}... wait $pid || : done echo finished exit } root="`pwd`" SGMONDIR="$(dirname "$(realpath -- "$0")")" . "$SGMONDIR"/rc probes="$("$SGMONDIR"/probelist.sh)" echo $(echo "$probes" | wc -l) probes | mailx -s "Starting" "$NOTIFY_EMAIL" for probe in $probes ; do cd $probe echo starting ${probe}... "$SGMONDIR"/run.sh $probe >/dev/null 2>&1 & echo $! > pid || : cd "$root" done echo OK trap stop HUP PIPE INT QUIT TERM EXIT while : ; do sleep 1 ; done