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
    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!
     
    #1
  2. jensIO
    Offline

    jensIO

    Registriert seit:
    28. Juli 2015
    Beiträge:
    602
    Ort:
    Internet, im Neuland
    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.)
     
    #2
  3. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    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.
     
    #3
  4. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    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
     
    #4
  5. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36

    In welcher config?
     
    #5
  6. Middicom
    Offline

    Middicom

    Registriert seit:
    9. Januar 2014
    Beiträge:
    74
    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
     
    #6
  7. LEIDERPRO
    Offline

    LEIDERPRO

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

    LEIDERPRO

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

    Middicom

    Registriert seit:
    9. Januar 2014
    Beiträge:
    74
    Minecraft:
    Middicom
    Meinst du das Startscript?
     
    #9
  10. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    Ja
     
    #10
  11. Middicom
    Offline

    Middicom

    Registriert seit:
    9. Januar 2014
    Beiträge:
    74
    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.
     
    #11
    LEIDERPRO gefällt das.
  12. LEIDERPRO
    Offline

    LEIDERPRO

    Registriert seit:
    27. Februar 2015
    Beiträge:
    36
    danke
     
    #12
  13. stopfi
    Offline

    stopfi

    Registriert seit:
    6. April 2016
    Beiträge:
    154
    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
     
    #13
  14. LEIDERPRO
    Offline

    LEIDERPRO

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

    LEIDERPRO

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

    stopfi

    Registriert seit:
    6. April 2016
    Beiträge:
    154
    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.
     
    #16