Linux Server restart script

The official Rising World Soundtrack is available!
You can also get the Soundtrack on Steam
  • Steam or Standalone?
    Standalone
    Singleplayer or multiplayer?
    Multiplayer
    Error message?
    No
    Operating system
    Linux

    Moin alle zusammen :)


    Wir haben nun den Rising World Server über einen Linux Server am laufen jedoch bekomme ich es nicht hin das der Server automatisch neu gestartet wird!

    Derzeitig wird der Server mit dem Befehl "screen -dmSL RisingWorld ./serverstart.sh" gestartet jedoch wenn man ingame oder per scheduler den Server sagt er solle neustarten wird er zwar beendet jedoch nicht wieder gestartet!


    Ich bin in Linux noch nen noob darum bitte ich euch nun um Hilfe :)

    Was ich gerne hätte währe ein script das überprüft ob der Prozess von Rising World noch läuft und wenn nicht das er ihn mit dem Befehl screen -dmSL RisingWorld ./serverstart.sh startet...


    Ich hoffe um hilfe :)

  • Hallo @Mefistus84,

    viele Wege führen nach Rising World ;)


    Beispiel 1

    Bash
    #!/bin/bash
    while true; do
    ./serverstart.sh
    echo "Server gestoppt. Neustart in 10 Sekunden..."
    sleep 10
    done

    Sehr einfach, die Kondition kannst du dir natürlich anpassen


    Beispiel 2

     echo ""  ist natürlich optional.



    Noch eine Lösung (Nr. 3) ist es, den Server als Dienst / systemd-Service einzurichten, damit er zuverlässig neugestartet wird.

    Aber es ist etwas komplizierter als die Beispiele / Lösungen davor.

    Es wird alles gut :) früher oder später :D meistens später :nerd: ... ich wandle Kaffee in Quelltext um.

    Und besucht die Rising World Wiki

  • Dann versuche Beispiel 1, ist am einfachsten.

    Erstelle ein Script dort wo dein serverstart.sh ist und nenne es z.B. StartWithMonitoring.sh oder so :D

    Schreibe Beispiel 1 rein und starte StartWithMonitoring.sh


    StartWithMonitoring.sh  Skript noch ausführbar machen mit chmod +x


    StartWithMonitoring.sh-Skript startet serverstart.sh und sorgt dafür, dass der Server automatisch neu startet, wenn er abstürzt oder beendet wird.

    Es wird alles gut :) früher oder später :D meistens später :nerd: ... ich wandle Kaffee in Quelltext um.

    Und besucht die Rising World Wiki

    Edited 2 times, last by Kryssi_79 ().

  • in der Zeile 3 muss natürlich dein Befehl stehen screen -dmSL RisingWorld ./serverstart.sh

    ich habe es nur angedeutet ... habe zu selten mit Anfängern zu tun


    Nachtrag:

    Fehler was du bekommst ist normalerweise ein Hinweis darauf, dass die Skriptdatei falsche Zeilenenden hat.

    Die erste Zeile des Skripts, die #!/bin/bash lauten sollte, wird als #!/bin/bash^M falsch interpretiert, was zu der Fehlermeldung führt.

    Es wird alles gut :) früher oder später :D meistens später :nerd: ... ich wandle Kaffee in Quelltext um.

    Und besucht die Rising World Wiki

    Edited 3 times, last by Kryssi_79 ().

  • So ein Fehler hatte ich noch nicht ...

    meine Recherche ergab:

    Dieser Fehler tritt häufig auf, wenn das Skript auf einem Windows-System erstellt wurde und dann auf einem Unix-basierten System wie Linux ausgeführt wird. Der Zusatz ^M am Ende der Shebang-Zeile deutet auf Windows-Zeilenumbrüche hin, die von Unix nicht erkannt werden können.

    Es wird alles gut :) früher oder später :D meistens später :nerd: ... ich wandle Kaffee in Quelltext um.

    Und besucht die Rising World Wiki

  • So nun hab ich mit touch eine neue Datei erstellt mit den Namen restart.sh diese dann mit nano editiert und Beispiel 1 rein gepackt. Ausführbar gemacht und gestartet und siehe da es klappt JEDOCH wurde Rising World immer wieder in 10sec tackt gestartet!!! :dizzy:


    Nun hab ich Beispiel 2 benutzt und es mit dem Befehl screen -dmSL Restart ./restart.sh ausgeführt dieser schreibt nun immer

    ./restart.sh: line 12: /risingworld_watchdog.log: Permission denied

    X(

    Hab mit touch die Datei risingworld_watchdog.log erstellt und die rechte auf 777 gesetzt aber dennoch die Fehlermeldung ansonsten funktioniert es wunderbar :D

  • So nun hab ich mit touch eine neue Datei erstellt mit den Namen restart.sh diese dann mit nano editiert und Beispiel 1 rein gepackt. Ausführbar gemacht und gestartet und siehe da es klappt JEDOCH wurde Rising World immer wieder in 10sec tackt gestartet!!!

    Mensch, damit Beispiel 1 funktioniert muss die Zeile 3 so ./serverstart.sh sein ... mein Gedanken Fehler.

    ./serverstart.sh startet direkt im aktuellen Terminal.

    Der while-Loop wartet darauf, dass ./serverstart.sh beendet wird, bevor die nächsten Zeilen (die Echo-Nachricht und sleep) ausgeführt werden.


    Also funktioniert Beispiel 2, kann nur nicht in risingworld_watchdog.log schreiben?

    Kannst in die Log Datei schreiben auch weg lassen. einfach >> /risingworld_watchdog.log am Ende weglassen

    z.B. echo "deine Meldung"


    Es wird alles gut :) früher oder später :D meistens später :nerd: ... ich wandle Kaffee in Quelltext um.

    Und besucht die Rising World Wiki

    • :)
    • ;)
    • :(
    • :P
    • ^^
    • :D
    • :verysad:
    • ;(
    • X(
    • :*
    • :|
    • :crazy:
    • :lol:
    • :dizzy:
    • =O
    • <X
    • ||
    • :thinking:
    • :wacko:
    • :/
    • 8)
    • :wat:
    • :huh:
    • :silenced:
    • :wow:
    • 8|
    • :angry:
    • :thumbdown:
    • :thumbup:
    • :sleeping:
    • :hushed:
    • :nerd:
    • :saint:
    • :drooling:
    • :love:
    • :monocle:
    • :poo:
    • :party:
    • :drunk:
    • <3
    • :!:
    • :?:
    The maximum number of attachments: 10
    Maximum File Size: 1 MB
    Allowed extensions: 7z, asset, avi, bmp, dds, gif, jpeg, jpg, json, log, lua, mp3, mp4, ogg, pdf, permissions, png, properties, rar, txt, unitypackage, xml, zip

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!