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:
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:
Und das Skript, welches den Dienst (in dem Fall halt die Schleife) ausführen soll:
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
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 |
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
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