1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Vserver Startscript Für Minecraft Server & Co HELP

Dieses Thema im Forum "Technischer Support" wurde erstellt von LEIDERPRO, 11. Juli 2016.


  1. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    hey ich hoffe hier kann wer mir bei meinem Problem helfen...
    Hier das Minecraft-Server start Script
    Code (Text):
    1. screen -S SkyBlock java -Xmx3G -Xms1G -jar Server.jar nogui
    2.  

    Hier das VServer REstart script (/etc./rc.local)
    Code (Text):
    1. #!/bin/sh -e
    2. #
    3. # rc.local
    4. #
    5. # This script is executed at the end of each multiuser runlevel.
    6. # Make sure that the script will "exit 0" on success or any other
    7. # value on error.
    8. #
    9. # In order to enable or disable this script just change the execution
    10. # bits.
    11. #
    12. # By default this script does nothing.
    13. su minecraft -c '/home/Teamspeak/ts3server_startscript.sh start'
    14. su minecraft -c '/home/Minecraft/pvp/start.sh'
    15. su minecraft -c '/home/Minecraft/skyblock/start.sh'
    16. su minecraft -c '/home/Minecraft/lobby/start.sh'
    17. su minecraft -c '/home/Minecraft/Bungeecord/start.sh'
    18. su musikbot -c "screen -dmS musikbot bash -c 'xinit /opt/ts3soundboard/ts3bot -- /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac; exec bash'"
    19.  
    20.  
    21. exit 0
    22.  
    Das ist mein Start-script nach einem Server Restart in /etc/rc.local

    Aber dieses Script geht nicht :/ weiss wer wieso?

    Wenn jetzt einer kommt öhhh wenn du mit linux nicht umgehen kannst lass es einfach... werde ich wütend Jeder fängt mal an JEDER!
     
  2. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    631
    Geschlecht:
    männlich
    Minecraft:
    jens1o
    Hast du das Script in der Config angegeben?

    Ich glaube eher nicht, das Java auf das Verzeichnis ohne besondere Rechte darauf zugreifen kann(kenne mich damit aber übehaupt nicht aus.)
     
  3. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    753
    Geschlecht:
    weiblich
    Ein bisschen Wissen deinerseits wär halt schon schön. Wie wärs mal mit einer Fehlermeldung? Das Skirpt schonmal direkt ausgeführt? Sind alle Ausführbits gesetzt? Außerdem sollte man über rc.local Skripte eh nichts starten, weil die mitunter mehrfach ausgeführt werden können. Außerdem stimmt vermutlich der Pfad nicht in dem das Skript gestartet wird, du solltest auf jeden Fall beim Startskript des Servers sicherstellen, dass du auch im korrekten Verzeichnis bist.
     
    Zuletzt bearbeitet: 11. Juli 2016
  4. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    alle scripte lassen sich als root ausführen un kalppen (starte die alle momentan per hand) Fehler meldungen gibt es nicht... bzw weiss ich nicht wo die gespeichert werden
     
  5. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich

    In welcher config?
     
  6. Middicom
    Offline

    Middicom

    Registriert seit:
    9. Januar 2014
    Beiträge:
    75
    Geschlecht:
    männlich
    Minecraft:
    Middicom
    Also ich lasse in der rc.local-Datei meinen Minecraftserver bei Restart des Root-Servers folgendermaßen starten:
    sh /home/mc/mc start
    Vielleicht musst du einfach den Pfad so angeben:
    su minecraft -c 'sh /home/Teamspeak/ts3server_startscript.sh start'
    MfG Middi
     
  7. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    Werde ich gleichmal Testen Danke :)
     
  8. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    was hast du in sh /home/mc/mc start drinnen ? :D
     
  9. Middicom
    Offline

    Middicom

    Registriert seit:
    9. Januar 2014
    Beiträge:
    75
    Geschlecht:
    männlich
    Minecraft:
    Middicom
    Meinst du das Startscript?
     
  10. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    Ja
     
  11. Middicom
    Offline

    Middicom

    Registriert seit:
    9. Januar 2014
    Beiträge:
    75
    Geschlecht:
    männlich
    Minecraft:
    Middicom
    #!/bin/sh

    cd /home/mc
    screen -AmdS mc java -server -Xms1024M -Xmx3584M -XX:MaxPermSize=256M -jar spigot.jar nogui
    echo "Server wurde gestartet..."
    sleep 1
    echo "Screen attaching ..."
    sleep 1
    screen -r mc​

    Das ist der Teil zum starten.
     
    • Gefällt mir Gefällt mir x 1
  12. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    danke
     
  13. stopfi
    Offline

    stopfi

    Registriert seit:
    6. April 2016
    Beiträge:
    151
    Geschlecht:
    männlich
    Hi,
    Zeile 13 und vielleicht 14 werden gestartet. Da dann nach Zeile 14 jedoch ein Task läuft und nicht beendet ist, gelangt das Script nicht zur Ausführung bei Zeile 15. So mein Verständnis zur Abarbeitung von Scripts.

    Besser ist es, jeden Server mit einem eigenen Script zu starten. So kannst Du einen zur Modifikation kurz runterfahren, editieren und mit seinem Script wieder starten. Jedes Startscript sollte ein weiteres in einem Screen aufrufen, wo dann der Server gestartet wird und bei einem Crash oder bei stop Ingame/Terminal runtergefahren und wieder neu gestartet wird. Selbstverständlich kannst Du so jeden Server im Terminal aufrufen und einen Neustart verhindern. = screen -r SERVERNAME und Du hast den gewünschten Server im Terminal, was auch wieder verlassen werden kann (STRG A + STRG D)

    start.sh
    Code (Text):
    1. #!/bin/bash
    2.  
    3. BINDIR=$(dirname "$(readlink -fn "$0")")
    4. cd "$BINDIR"
    5.  
    6. screen -S "SERVERNAME" bash -c "sh ./loop.sh"
    loop.sh
    Code (Text):
    1. #!/bin/bash
    2.  
    3. BINDIR=$(dirname "$(readlink -fn "$0")")
    4. cd "$BINDIR"
    5. echo "\033]0;SERVERNAME\007"
    6.  
    7.  
    8. while true
    9. do
    10.  
    11.   java -server -Xms2g -Xmx8g -server -jar spigot.jar
    12.  
    13.  
    14.   echo 'Willst Du den Server komplett stoppen, drücke STRG-C, \nbevor die Zeit bei 1 ist!'
    15.   echo "Rebooting in:"
    16.   for i in 5 4 3 2 1
    17.   do
    18.   echo "$i..."
    19.   sleep 1
    20.   done
    21.   echo 'Server neustart!'
    22. done
    23.  
    Screen muss installiert sein
    Code (Text):
    1. sudo apt-get install screen
     
  14. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    werde ich morgen mal testen habe jetzt kein bock mehr :D
     
  15. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Geschlecht:
    männlich
    ich muss dann aber für jeden server einen eigenen loop machen ? oder kann ich in einen allen rein machen ?
     
  16. stopfi
    Offline

    stopfi

    Registriert seit:
    6. April 2016
    Beiträge:
    151
    Geschlecht:
    männlich
    Jeder Server hat seine zwei Scripts, die ich postete. Diese sind im jeweiligen Serverordner gespeichert.

    Damit ich bei einem Root Neustart nicht umständlich durch die Ordner hangeln muss, um die "run.sh" zu starten, habe ich in /home nochmals Scripte. Die kann ich dann bequem mittels "./run1.sh" .... "./runX.sh" aufrufen. Bissl Handarbeit, aber es funktioniert einwandfrei.

    Ich hatte auch schon versucht, mit einem "AllesStart Script" die Einzelscripte aufzurufen und so alle Server starten wollen. Ging jedoch nicht.
    Daraus folgere ich, dass nach Aufruf des Servers wie in "loop.sh" die Ausführung in Zeile 11 meines Scripts pausiert, bis der Server herunterfährt und erst danach weiter verarbeitet wird.

    So kannst Du als Owner sogar Ingame den Befehl /stop eingeben, um den Server automatisch neu zu starten. Abbrechen des Neustarts ist dann im Terminal mittels STRG-C während der Zählphase 5.4.3.2.1 problemlos möglich.

    "SERVERNAME" in den 2 Scripten kann dann durch PvP, Survival u.s.w. ersetzt werden. Die einzelnen Terminals werden dadurch sogar benannt und es ist so viel einfacher, das richtige Terminal zu wählen.
     
    Zuletzt bearbeitet: 14. Juli 2016