Shell schleife beenden
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
abbrechen
befehl
break
code
datei
freital
gegebenfalls
grund
herunterfahren
kommando
problem
schleife
schleifen
server
shell
skriptum
stoppen
tat
url
verein
-
Hallo,
ich habe folgendes Problem, zu dem ich keine Lösung parat habe:
Ich starte über ein Shell-Script einen Gameserver und möchte, dass er, wenn er abstürzen sollte, automatisch neu gestartet wird.
Bisher habe ich das so gemacht:
while true; do
command_to_start_server
done
Das klappt auch perfekt, aber ich habe ein Problem:
Wenn ich den Server herunterfahren möchte, startet er immer neu.
Ich sende (über ein anderes shell-script) einen Befehl an den Server, damit er herunterfährt.
Er speichert die Einstellungen und dann wird der Prozess beendet.
Leider wird der Prozess dann neu gestartet, da er sich ja noch immer in dem "while true" befindet.
Kennt ihr einen Lösungsweg, wie ich dafür sorgen kann, dass der Server in diesem speziellen Fall nicht neu gestartet wird?
Vielen Dank schonmal im Voraus
PS: bei dem Server handelt es sich um eine *.jar - Datei, die mittels dem "java"-Befehl unter Ubuntu ausgeführt wird. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mach es so:
und um zum stoppen des Servers erstellst du die Datei "kill_server"while [ ! -e "kill_server" ]; do command_to_start_server done
-
asp-verein-freital schrieb:
Meinst du das etwa so:
Nur zur Vollständigkeit: Mit
kann man in Shell Skripten Schleifen abbrechen. Allerdings halte ich so eine Lösung für "unschön", weshalb ich die oben genannte Lösung mit Abbruchbedingung als Schleifenbedingung als wesentlich eleganter erachte.break;
Das ist in der Tat unschön (eher »hässlich«).while true; do command_to_start_server [ ! -e "kill_server" ] && break done
Der Grund: bei
wird das Kommandowhile true
1x pro Schleifendurchlauf gestartet. DANACH wird in der Schleife [ gestartet und gegebenfalls break, um die Schleife zu stoppen.true
Wenn die Abbruchbedingung in der Schleife gleich richtig gesetzt wird, wird nur ein einziges mal [ gestartet und es werden 2 weitere Programmaufrufe eingespart. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage