Rust start.bat

Aktuell führen wir noch einige Anpassungen durch, das Forum wurde jedoch bereits live geschaltet.
  • Hallo zusammen,


    ich stehe schon ein paar Tage ein wenig auf dem Schlauch und komme da leider nicht weiter. Daher bin ich guter Hoffnung das mir hier jemand von euch Helfen kann ;)

    Ich habe natürlich auch schon die Suche bemüht, jedoch habe ich es trotz einiger weiterer Beiträge zu dem Thema nicht hinbekommen.


    Ich habe folgende start.bat erstellt:


    Code
    set cmdcount="wmic process where name="RustDedicated.exe" | find "RustDedicated.exe" /c" 
    FOR /F "tokens=*" %%i IN (' %cmdcount% ') DO SET X=%%i 
    IF %x%==2 GOTO resume exit 
    SET mypath=%~dp0 
    for /f "tokens=2 delims==; " %%a in (' wmic process call create "RustDedicated.exe -batchmode +server.port 28215 +server.maxplayers 4 +server.saveinterval 30 +server.levelurl "https://MeineTolleWebsite.de/Rust/Map/MeineTolleMapTest3.1.map" +server.hostname "[DE|EU]SuperTollerServer" +server.identity "Rust" +rcon.port 28216 +rcon.password XXX +rcon.web 1" ^| find "ProcessId" ') do set PID=%%a
    echo %PID% > pid.txt 


    Leider öffnet sich beim starten des Servers für ein Bruchteil einer Sekunde die CMD und geht sofort wieder zu. Weiter passiert da leider nichts mehr.

    Ich würde auch die Optionen (-batchmode, port etc.) direkt hier vergeben, da bei uns aktuell nur 5 Gameserver gehostet werden reicht mir das.


    Hat da jemand eine Idee wie ich das hinbekommen könnte?


    Hier meine .bat mit der ich den Server Problemlos starten kann (zum Stopen benötige ich ja aber eine PID):


    Vielen Dank schon vorab für eure Hilfe :thumbup:

    Und ich wünsche noch Frohe Weihnachten.

  • Hallo, ja klar kann ich via Remote die CMD stoppen. Dann benötige ich aber auch keine Tekbase wenn ich dies über ein Interface nutzen möchte.

    Grundlegend geht es aber auch darum das der ein oder andere Moderator dies über Tekbase starten/stopen etc. kann ohne das ich Ihm den Zugriff via Remote geben muss..

  • Hallo zusammen,


    entschuldigt die späte Rückmeldung. Leider habe ich es bisher nicht hinbekommen, trotz der Anleitung von CrosShadow ;(

    Anbei meine "ruststart.bat" :


    Code
    SET mypath=%~dp0
    for /f "tokens=2 delims==; " %%a in (' wmic process call create "%mypath:~0,-1%\RustDedicated.exe -batchmode +server.ip=%1 +server.port=%2 +server.hostname=[DE|EU]SuperServer +server.identity=RustServer +server.levelurl=https://meinedomain.de/Map/SuperMap.map +rcon.password=SuperPasswort" ^| find "ProcessId" ') do set PID=%%a
    echo %PID% > pid.txt


    Tekbase startscript:


    Code
    ruststart.bat gsip gssport


    Die pid.txt wird erstellt und dort befindet sich auch die pid (zb: 12345)


    Es blinzelt kurz die CMD auf und schließt sich wieder.


    In der Taskmanager kann ich nun die "RustDedicated" finden, jedoch scheint der Server nicht wirklich zu laufen (Ramverbrauch: ca. 78MB).


    pasted-from-clipboard.png


    Mein anderer Server den ich über eine einfache .bat starte sieht wie folgt im Taskmanager aus (Ramverbrauch: ca. 9GB):


    pasted-from-clipboard.png


    Startscript des anderen Rust Servers (Dies funktioniert soweit einwandfrei):


    Code
    @echo off
    cls
    cd C:\Server\GTRustMain\
    set watch=Rust Server - 
    title %watch% Watchdog
    :watchdog
    echo (%time%) %watch% started.
    RustDedicated.exe -batchmode +server.port 28015 +server.level "Procedural Map" +server.seed 2030275787 +server.worldsize 4600 +server.maxplayers 60 +server.saveinterval 360 +server.hostname "SuperTollerServer" +server.identity "RustServern" +rcon.port 28016 +rcon.password SuperPasswort +rcon.web 1 -freezecheck
    echo (%time%) %watch% wurde beendet! RustMain Server wird neu gestartet...
    goto watchdog

    Ich hoffe ich konnte mein Problem ausführlich beschrieben.


    Hat jemand eine Idee woran das hier nun scheitert?


    Vielen Dank und allen ein guten Start ins neue Jahr 2021 !! Bleibt Gesund!

  • Code
    -batchmode +server.ip 0.0.0.0 +server.port 28015 +server.tickrate 10 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.seed 793197 +server.maxplayers 50 +server.worldsize 3000 +server.saveinterval 600 +rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "Your_Rcon_Password" -logfile "logfilename.log"

    Offizelle .bat von valve (natürlich anpassen auf tekbase)

  • Hallo Slive, vielen Dank für deine Antwort. Aber wie ich oben bereits geschrieben habe funktioniert meine zweite .bat Problemlos.


    Ich denke du hast mein Problem hier nicht ganz verstanden.. Auch die Antwort "da es sich ja um nen windows server handelt kannst du doch einfach die cmd stoppen" ist am Thema leider vorbeigeschossen.

  • Hallo Slive, vielen Dank für deine Antwort. Aber wie ich oben bereits geschrieben habe funktioniert meine zweite .bat Problemlos.


    Ich denke du hast mein Problem hier nicht ganz verstanden.. Auch die Antwort "da es sich ja um nen windows server handelt kannst du doch einfach die cmd stoppen" ist am Thema leider vorbeigeschossen.

    wie eben gesagt Offizielle start bat von valve :) Aber naja ein glück nutz ich linux und muss mich nicht mit windows rumärgern welches für gameserver sowieso semi gut geeignet ist

  • Danke für den unbrauchbaren Kommentar. Ich betreibe selber seit über 12 Jahren Gameserver unter Linux. Leider gibt es immer mehr Gameserver die nur auf Windows laufen (Stichwort Dayz SA etc.). ;)

  • Danke für den unbrauchbaren Kommentar. Ich betreibe selber seit über 12 Jahren Gameserver unter Linux. Leider gibt es immer mehr Gameserver die nur auf Windows laufen (Stichwort Dayz SA etc.). ;)

    Die spiele die reine windows files haben kann man an einer hand abzählen xD Und wenn du jetzt mit dayZ kommst das sind niechen games die die breite masse nicht spielen

  • Vielleicht so, das ist hier für ein anderes Programm. Als erstes wird eine Liste der PIDs erstellt, dann das Programm gestartet und dann die PIDs noch mal ausgelesen. Nun wird geprüft welches der z.b. notepad.exe neu ist und die pid wird dann gespeichert


    Bitte die Forumsuche und das Handbuch verwenden. Wenn die Suche erfolglos war, bitte ein Thema erstellen und das Problem ausführlich beschreiben. Dieser Ablauf spart Zeit und unnötige Fragen zu immer gleichen Problemen. Sie können aber auch im Kundenbereich ein Support-Ticket erstellen.


    Gefällt Ihnen TekLab? facebook-1.pngtwitter-1.pnglinkedin-1.png

    • Hilfreich

    Hallo Herr Frankenstein, nochmal vielen Dank für die Hilfe! Dies hat nun geklappt. Habe noch eine kleinigkeit geändert da ansonsten die my_stop.bat nicht funktioniert hatte.


    Auch habe ich hier:

    Code
    start %PROCESSNAME%

    die Startparameter hinterlegt. Dies funktioniert nun genau wie gewünscht.

    Die Affinity legt die Anzahl der Kerne/Threads fest.


    Die start.bat sieht nun wie folgt aus:



    Hier nun die my_stop.bat:


    Code
    @echo off
    for /f %%i in (pid.txt) do (
    set PID=%%i
    )
    echo %PID%
    taskkill /f /pid %PID%
    del pid.txt


    Vielen Dank nochmal für die Hilfe ;)

  • Super wird dann so übernommen. :)

    Bitte die Forumsuche und das Handbuch verwenden. Wenn die Suche erfolglos war, bitte ein Thema erstellen und das Problem ausführlich beschreiben. Dieser Ablauf spart Zeit und unnötige Fragen zu immer gleichen Problemen. Sie können aber auch im Kundenbereich ein Support-Ticket erstellen.


    Gefällt Ihnen TekLab? facebook-1.pngtwitter-1.pnglinkedin-1.png