]> Sergey Matveev's repositories - sgmon.git/blobdiff - start.sh
Get rid of pid file outside state directory
[sgmon.git] / start.sh
index 30315ddd28040e6816eabff11ad5a1a48787bcb0..7d4baa61913323ef63971cda07f2605c618b6a90 100755 (executable)
--- a/start.sh
+++ b/start.sh
@@ -4,14 +4,14 @@ 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 || :
+        [ -s $probe/state/pid ] || continue
+        echo killing ${probe}
+        pkill -F $probe/state/pid 2>/dev/null || :
     done
     for probe in $probes ; do
-        read pid < $probe/pid || :
+        read pid < $probe/state/pid || :
         [ -n "$pid" ] || continue
-        echo waiting ${probe}...
+        echo waiting ${probe}
         wait $pid || :
     done
     echo finished
@@ -25,9 +25,19 @@ 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}...
+    echo -n starting ${probe}
     "$SGMONDIR"/run.sh $probe >/dev/null 2>&1 &
-    echo $! > pid || :
+    pid=$!
+    while : ; do
+        if  [ -d state ] ; then
+            break
+        else
+            sleep 1
+            echo -n .
+        fi
+    done
+    echo ""
+    echo $pid > state/pid || :
     cd "$root"
 done
 echo OK