• Bitte beachte, dass wir eine Serverliste sind!
    Wenn du ein Problem auf einem Server hast (z.B. Entbannantrag, etc), dann ist das Forum hier der falsche Ort.
  • 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

LEIDERPRO

Redstoneengineer
Registriert
27 Februar 2015
Beiträge
36
Alter
35
Diamanten
314
hey ich hoffe hier kann wer mir bei meinem Problem helfen...
Hier das Minecraft-Server start Script
Code:
screen -S SkyBlock java -Xmx3G -Xms1G -jar Server.jar nogui


Hier das VServer REstart script (/etc./rc.local)
Code:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
su minecraft -c '/home/Teamspeak/ts3server_startscript.sh start'
su minecraft -c '/home/Minecraft/pvp/start.sh'
su minecraft -c '/home/Minecraft/skyblock/start.sh'
su minecraft -c '/home/Minecraft/lobby/start.sh'
su minecraft -c '/home/Minecraft/Bungeecord/start.sh'
su musikbot -c "screen -dmS musikbot bash -c 'xinit /opt/ts3soundboard/ts3bot -- /usr/bin/Xvfb :1 -screen 0 800x600x16 -ac; exec bash'"


exit 0

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!
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
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:

Middicom

Kuhfänger
Registriert
9 Januar 2014
Beiträge
93
Diamanten
0
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
 

LEIDERPRO

Redstoneengineer
Registriert
27 Februar 2015
Beiträge
36
Alter
35
Diamanten
314
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
was hast du in sh /home/mc/mc start drinnen ? :D
 

Middicom

Kuhfänger
Registriert
9 Januar 2014
Beiträge
93
Diamanten
0
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.
 

stopfi

Schafhirte
Registriert
6 April 2016
Beiträge
143
Diamanten
0
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:
#!/bin/bash

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

screen -S "SERVERNAME" bash -c "sh ./loop.sh"

loop.sh
Code:
#!/bin/bash

BINDIR=$(dirname "$(readlink -fn "$0")")
cd "$BINDIR"
echo "\033]0;SERVERNAME\007"


while true
do

  java -server -Xms2g -Xmx8g -server -jar spigot.jar


  echo 'Willst Du den Server komplett stoppen, drücke STRG-C, \nbevor die Zeit bei 1 ist!'
  echo "Rebooting in:"
  for i in 5 4 3 2 1
  do
  echo "$i..."
  sleep 1
  done
  echo 'Server neustart!'
done

Screen muss installiert sein
Code:
sudo apt-get install screen
 

stopfi

Schafhirte
Registriert
6 April 2016
Beiträge
143
Diamanten
0
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:
Oben