Seite 1 von 2

[Gelöst] Server Start beim Stop

BeitragVerfasst: Sa 1. Feb 2014, 20:32
von Summerfeeling
Hallo,
ich möchte nun für meinen Server Gamemodes programmieren, und wollte fragen, wie ich es schaffe, den Server nach dem Stop wieder zu starten. Oder gibt es einen Script, den ich benutzen kann? Benutze Linux als Server Betriebssystem.

Re: Server Start beim Stop

BeitragVerfasst: So 2. Feb 2014, 00:43
von tahu98
Mit Spigot geht das, da ist das schon eingebaut.

Re: Server Start beim Stop

BeitragVerfasst: So 2. Feb 2014, 01:31
von laklaklak
Als shellscript mit screen könnte es so aussehen:
Code: Alles auswählen
  1. if ! screen -list | grep -q {Session Name Hier}; then
  2.   screen -S {Session Name} -X quit
  3. fi
  4. screen -dmS {Session Name} java -Xmx{Max RAM in MB}M -jar {pfad zur craftbukkit.jar


Welche linux distro hast du denn? :D

Re: Server Start beim Stop

BeitragVerfasst: So 2. Feb 2014, 23:34
von Summerfeeling
laklaklak hat geschrieben:Als shellscript mit screen könnte es so aussehen:
Code: Alles auswählen
  1. if ! screen -list | grep -q {Session Name Hier}; then
  2.   screen -S {Session Name} -X quit
  3. fi
  4. screen -dmS {Session Name} java -Xmx{Max RAM in MB}M -jar {pfad zur craftbukkit.jar


Welche linux distro hast du denn? :D


Das startet meinen Server nach einem /stop automatisch neu?

Ich benutze Debian 7 AMD 64 Minimal (Denke du meinst das? :D)

Re: Server Start beim Stop

BeitragVerfasst: Mo 3. Feb 2014, 07:56
von Chaineagle
Du willst jedes Mal den Screen stoppen?

Re: Server Start beim Stop

BeitragVerfasst: Mo 3. Feb 2014, 08:41
von Ch4t4r
Starte über screen in einer .sh eine loop.sh Datei, die in einer while-schleife mit java -jar ...... deinen Server Startet. Die Anweisung java pausiert, bis das aktuelle Programm beendet ist, danach greift die while-schleife in der Shelldatei und der server startet neu.

Re: Server Start beim Stop

BeitragVerfasst: Mo 3. Feb 2014, 10:18
von PostCrafter
Bei mir sieht der automatische Restart so aus:
Code: Alles auswählen
  1. #!/bin/bash
  2. while [ -f restart ]
  3. do
  4.        echo "Server is restarting..."
  5.         ../update_version.sh bukkit
  6.        java -jar server.jar
  7. done
  8. echo "Unable to find the restart file, exiting..."
  9. sleep 3

Der Server startet sich also nur neu, wenn im Serverordner eine Datei namens "restart" existiert, sollte diese nicht vorhanden sein, so beendet sich der Server und muss neu gestartet werden. Theoretisch könnte man es also so einrichten, dass die Datei beim Start des Plugins entfernt wird und mithilfe eines Restart-Befehls neu erstellt und der Server erst dann beendet wird. Da du deinen Server aber vermutlich permanent neu starten willst, kannst du das Löschen der Datei auch einfach weglassen. ;)

Re: Server Start beim Stop

BeitragVerfasst: Mo 3. Feb 2014, 23:20
von Summerfeeling
@PostCrafter Was ist update_version.sh?

Re: Server Start beim Stop

BeitragVerfasst: Di 4. Feb 2014, 00:26
von PostCrafter
Oh, tut mir leid, das habe ich einfach so mitkopiert, da ich es erst relativ neu eingebaut habe, habe ich nicht daran gedacht. ;)

Bei mir sorgt es dafür immer die aktuellste Version des Servers aus dem darüber geordneten Ordner zu kopieren, so kann ich mir einzelnes Kopieren der server.jar in die einzelnen Server-Ordner sparen. In meinem Fall habe ich die Auswahl zwischen bukkit und vanilla, da ich für ein paar Freunde auch "normale" Server hoste.
Code: Alles auswählen
  1. #!/bin/bash
  2. if [ -z $1 ]; then
  3.     echo "You must give a server version"
  4.     exit 2
  5. fi
  6. if [ -f "../$1.jar" ]; then
  7.     cp -r "../$1.jar" "./server.jar"
  8. fi

Ich kopiere also einfach nur die neuste Version in den darüber liegenden Ordner und starte den Server neu.
Das Ganze ließe sich auch noch für Plugins erweitern, wenn man das bräuchte, was bei mir aktuell (noch) nicht der Fall ist.

Re: Server Start beim Stop

BeitragVerfasst: Di 4. Feb 2014, 01:40
von Summerfeeling
@PostCrafter Also würde für mich reichen:
Code: Alles auswählen
  1. #!/bin/bash
  2. while [ -f restart ]
  3. do
  4.     echo "Server is restarting..."
  5.     java -jar craftbukkit.jar
  6. done
  7. echo "Unable to find the restart file, exiting..."
  8. sleep 3

Und nochmal sicher zu gehen. Wenn eine restart Datein in meinem Server Ordner ist, wird der Server gerestartet? Muss ich in meinem Plugin dann im onEnable Teil die restart Datei löschen, und im onDisable Teil erstellen? Und wenn die Datei einfach für immer in dem Server bleibt, wird der Server dann alle xx Ticks/Milisekunden/Sekunde gerestartet?