BungeeCord Autostart

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
WoodenComputer
Beiträge: 4
Registriert: 09.10.2013 20:11:05

BungeeCord Autostart

Beitrag von WoodenComputer » 09.10.2013 20:15:19

Hallo!

Ich habe einen Linux VServer und habe dort das Minecraft Server Netzwerk System Bungeecord installiert.

Ich habe folgendes Problem ich habe mir eine startscript.sh geschrieben diese sieht so aus:

Code: Alles auswählen

#Insert path to bungeecord.jar here
DIR=/home/server/BUNGEECORD

echo ""

case "$1" in
start)
is_it_running=`screen -ls | grep bungeecord`
if [ "$is_it_running" != "" ]
then
echo "*** Es laeuft bereits ein Screen mit dem Namen: bungeecord"
else
echo "*** Starte Bungeecord Server"
screen -A -m -d -S bungeecord java -Xms512M -Xmx512M -jar bungeecord.jar nogui

status=`screen -ls | grep bungeecord`
if [ "$status" == "" ]
then
echo "*** Starten fehlgeschlagen"
else
echo "*** BungeeCord Server ist gestartet"
echo "*** Schau in die Console mit screen -r bungeecord"
echo $status
fi
fi
echo ""
;;
stop)
echo "*** Laeuft ein Bungeecord Server schaue in Screen nach..."

is_it_running=`screen -ls | grep bungeecord`
if [ "$is_it_running" != "" ]
then
echo "*** Laufender Server gefunden:" $is_it_running
echo ""
echo "*** " $is_it_running " wird gestoppt."
screen -dr bungeecord -p 0 -X stuff "$(printf "end\r")"
fi
echo ""
;;
*)
echo $"*** Benutze: $0 {start|stop}"
exit 1
esac
Wenn ich diese Datei per ./ ausführe funktioniert das auch alles wunderbar.

Danach habe ich im Verzeichnis /etc/init.d/bungeecord folgende Datei angelegt:
Allerdings kenne ich mich gar nicht aus mit dem INIT Informationen!

Code: Alles auswählen

#!/bin/bash
# startscript.sh

### BEGIN INIT INFO
# Provides: MTA
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description:MTA Server
### END INIT INFO

if [[ $# -eq 0 ]]; then
    echo "Benutze folgende Syntax:"
    echo -e "\e[31m$0 start\e[0m"
    echo -e "\e[31m$0 stopp\e[0m"
  exit 1
fi
if [ $1 == start ] ;
  then
/home/server/BUNGEECORD/startscript.sh start
  elif [ $1 == stop  ] ;
  then
/home/server/BUNGEECORD/startscript.sh stop
  fi
exit 0
Diese Funktioniert soweit auch!
Allerdings spuckt mir der Code MANCHMAL aus das der Server bereits läuft obwohl der Server gar nicht läuft.

Das weitere wäre das der Server auch nicht beim Server reboot startet obwohl ich ihn in den Autostart hinzugefügt habe. (update-rc.d bungeecord defaults)

MfG

WoodenComputer
Beiträge: 4
Registriert: 09.10.2013 20:11:05

Re: BungeeCord Autostart

Beitrag von WoodenComputer » 09.10.2013 20:17:36

Entschuldigung ich habe das Falsche Forum ausgewählt.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: BungeeCord Autostart

Beitrag von Cae » 09.10.2013 20:30:58

Ein Problem duerfte sein, dass die *.jar nicht in /etc/init.d/ bzw. / liegt, wo das Arbeitsverzeichnis von init-Skripten ist. Am simpelsten cd'st du in das Zielverzeichnis:

Code: Alles auswählen

...
cd /home/server/...
if [ $1 == start ]; then
...
Ausserdem laufen init-Skripte als root, was keine gute Idee fuer Server ist. Verwende daher

Code: Alles auswählen

su -l start -c '/home/server/...sh start'
und dasselbe bei stop.

Willkommen im Forum! Ich habe deinen Thread in ein passenderes Sub-Forum verschoben.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

WoodenComputer
Beiträge: 4
Registriert: 09.10.2013 20:11:05

Re: BungeeCord Autostart

Beitrag von WoodenComputer » 09.10.2013 22:46:08

Hi nochmal

Danke für die Hilfe funktioniert soweit wenn ich nicht das Script "umloggen" lasse.

Wenn ich es so laufen lasse funktioniert es (Also das ganze als root user starte)

Code: Alles auswählen

...
/home/server.../startscript.sh start
....
Wenn ich aber das "umloggen" einbaue

Code: Alles auswählen

su minecraft -l start -c '/home/server.../startscript.sh start'
Dann steht in der Console

Code: Alles auswählen

/etc/init.d/bungeecord start

*** Starte Bungeecord Server
*** BungeeCord Server ist gestartet
*** Schau in die Console mit screen -r bungeecord
4978.bungeecord (10/09/13 22:28:20) (Detached)

aber der Server ist nicht gestartet

Wenn ich die startscript.sh als minecraft user per ./ ausführe funktioniert es
oder auch wenn ich die .jar direkt per screen starte auch.
Allerdings nicht über das Script.

Mfg & danke schon im voraus!

Antworten