Quantcast
Channel: Multimediaforum
Viewing all articles
Browse latest Browse all 4603

skript zum überprüfen, ob Dienste mehrfach laufen

$
0
0
Hallöchen Leute,

Habe (mal wieder) ein Problem mit einem Skript.
Undzwar sollte das Skript sicherstellen, dass der Dienst nicht öfter als 5 mal ausgeführt wird.
Da ich das mit dem Dienst momentan nicht ordentich testen kann, habe ich mir gedacht, dass ich mir ein skript schreibe, dass einfach in einer Dauerschleife endet. Zuvor hatte ich das Skript mit dem zu überprüfenden Dienst getestet was auch eigentlich gut funktionierte, nur lässt sich dieser Dienst auf meinem testsystem nicht mehrfach ausführen, bzw. Zieht der Dienst für meine VM zuviel an Leistung.

Daher hab halt die Dauerschleife gebastelt. Die Sache ist nun die, dass mein Skript, dass mit dem Dienst soweit gut funktioniert hat, keine Ausgaben mehr auswirft und ich nach einer gewissen Zeit diesen Fehler bekomme:

Zitat:

expr: syntax error
Dachte dann, es müsste ja an der Schleife liegen, führe ich sie aber per Hand in der Konsole aus, bekomme ich keine Fehler:confused::confused::confused:


Naja hier mal die Schleife:
Code:

#!/bin/bash

# Variable, die mit 2 multipliziert werden soll

test1=1

while true
do

# Multiplikation der Zahl mit 2

  test1=`expr $test1 + $test1`

# Soll Ergebnis in die angegebene File reinschreiben

  echo $test1 >>/home/squish/testfile
  sleep 10
done


Und das Skript, welches den Dienst (in dem Fall halt die Schleife) ausführen soll:

Code:

#!/bin/bash

# speichert Anzahl der Dienste

bla=`pgrep -c schleife`


while true
do

# überprüft, wie oft der Dienst läuft

  case "$bla" in
  1|2|3|4)
      echo "Starte Dienst"

# führt das Dauerschleifenskript aus

      ./schleife &
      sleep 3
      break ;;
  0)
      echo "Dienst läuft nicht "
      echo "Starte Dienst"
      ./schleife &
      break ;;
  *)
      echo "Es laufen bereits $bla Dienste"
      echo "Der Dienst darf nicht öfter als 5 mal gestartet werden"
      break ;;
  esac
done

exit 0

Bei der Ausführung des Skriptes spuckt meine Konsole nicht einen echo-Befehl aus.

Das & Zeichen nach dem ausführen der Schleife war ein Test, weil ich überlegt hatte, dass das Skript ja nicht weiterläuft, bis die Schleife beendet ist.

Um das einfacher zu gestalten, habe ich noch zusätzlich die Kommentare eingefügt. Hoffe so ist das in Ordnung. Wenn nicht, könnt ihr mir ja Tipps geben, wie ich Skripte beim nächsten mal besser kommentiere ;)

Danke schonmal im Vorraus für eure Hilfe

LG Freki

Viewing all articles
Browse latest Browse all 4603