ubuntuusers.de

Auto-Restart Minecraft-Bukkit Server - Script fehler

Status: Gelöst | Ubuntu-Version: Xubuntu 13.04 (Raring Ringtail)
Antworten |

Mont-Bit

Anmeldungsdatum:
4. Januar 2011

Beiträge: 205

Ich betreibe einen Minecraft Spieleserver, der mittels dem Plugin Auto-Restart nach einer gewissen Zeit heruntergefahren und dann neu gestartet werden soll. Das Plugin funktioniert und fährt den Server auch herunter. Danach sollte das Start-Script den Server wieder neu starten. Leider blitzt die Konsole kurz auf und schliesst sich sofort wieder. Ich weiss nicht, woran dies liegt. Hier stelle ich mal das StartScript ein, das aus der Plugin-Seite kopiert wurde.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash

BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"

while true
do
        java -Xms1024M -Xmx8192M -jar bukkit16.jar

    echo -e 'If you want to completely stop the server process now, press ctrl-C before the\ntime is up!'
    echo "Rebooting in:"
    for i in {5..1}
    do
        echo "$i..."
        sleep 1
    done
    echo 'Restarting now!' 

Momentan starte ich den Server nur mit dem Befehl aus Zeile 8. Das Plugin ist deaktiviert und ich stoppe/starte den Server manuell. Würde dies jedoch gerne automatisiert alle 4 Stunden ausführen lassen.

Schon mal Danke im Voraus für helfende Tipps.

LG Monti

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Der erste Schritt wäre, die Fehlermeldungen mal sichtbar zu machen, indem Du z.B. als 18. Zeile ein sleep 300 am Ende anhängst ...

Ich vermute fast, dass er wegen unvollständiger $PATH - Angaben den Java nicht findet, oder sowas.
(merke: unter cron und ähnlichen Diensten steht ein Großteil des Environment nicht zur Verfügung. Dann muss man evt. die Befehle mit vollständigem Pfad aufrufen.)

LG,

track

Mont-Bit

(Themenstarter)

Anmeldungsdatum:
4. Januar 2011

Beiträge: 205

Eigentlich müsste Java gefunden werden, denn ich starte den Server mit dem Script start.sh.

1
2
3
#!/bin/bash

java -Xms1024M -Xmx4096M -jar bukkit16.jar

Auch mit sleep 300 schliesst sich das Terminal sofort wieder. Es ist nur einen Sekunden-Bruchteil aufblitzend zu sehen.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Mont-Bit schrieb:

Auch mit sleep 300 schliesst sich das Terminal sofort wieder. Es ist nur einen Sekunden-Bruchteil aufblitzend zu sehen.

Dann liegt der Fehler wohl schon früher ...

Was passiert, wenn Du den sleep immer weiter nach oben schiebst, bis er ganz als erstes im Skript steht ?
(es kann ja auch sein, dass er z.B. dirname oder readlink nicht findet ...)

track

kizu

Avatar von kizu

Anmeldungsdatum:
31. Juli 2009

Beiträge: 677

Wohnort: Buchholz

Hallo Mont-Bit,

um die Fehlermeldung zu sehen, starte doch dein Script mal aus der Console.

MfG, Daniel

Mont-Bit

(Themenstarter)

Anmeldungsdatum:
4. Januar 2011

Beiträge: 205

Aus der Konsole kommt folgende Meldung:

andy@Ubuntu-Desktop:~/RAID5/bukkit-server/Mein-Gargamel$ ./run.sh
./run.sh: Zeile 19: Syntax Fehler: Unerwartetes Dateiende.
andy@Ubuntu-Desktop:~/RAID5/bukkit-server/Mein-Gargamel$

Das Script stammt von folgender Bukkit-Seite : http://dev.bukkit.org/bukkit-plugins/autorestart/

Edit: Mein englisch ist nicht so gut, aber unten in den Comments ist das Problem offensichtlich auch vorhanden. Jedoch finde ich dort keinen Beitrag, der den Fehler behebt, oder ich verstehe nicht alles.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

./run.sh: Zeile 19: Syntax Fehler: Unerwartetes Dateiende.

Sowas deutet normalerweise auf einen Paarungsfehler bei do ... done, Klammern o.ä. hin.

Edit: Wo ist eigentlich das done als Gegenstück zu dem do in Zeile 7 ?

Sonst: Hast Du das Skript womöglich mit Win..- Zeilenenden gespeichert, oder irgend sowas ?
Guck doch mal bitte mit hd run.sh nach, ob da irgend was komisches drin ist.

Manchmal hilft auch ein Diagnose-echo weiter, z.B. ein echo "$BINDIR" in Zeile 5 ...

Überhaupt sieht mir das Skript sehr "zusammengeschustert" aus, und von rebooten sehe ich auch nichts.

LG,

track

Mont-Bit

(Themenstarter)

Anmeldungsdatum:
4. Januar 2011

Beiträge: 205

Ich verwende den Editor gedit (in Mate heisst der pluma). Der speichert Dateien korrekt, was BOM oder UTF8 anbelangt. PS: Mein System ist MS-Free.

Edit: Wo ist eigentlich das done als Gegenstück zu dem do in Zeile 7 ?

Gute Frage. Ausprobieren und einfach an den Schluss der Datei geschrieben, da die Einrückungen des Codes dies als Logisch anbietet. Mehr als eine weitere Fehlermeldung kann ja nicht passieren.

Fazit: Das Script startet ohne Fehlermeldung und startet den Server. Dann mittels "stop" den Server heruntergefahren und siehe da, es Zählt von 5...1 runter und der Server startet nun neu.

Antworten |