0

現在、StarMade サーバーを実行しており、サーバーの自動再起動に取り組んでいます。

現在、2 つのバッチ ファイルがあり、1 つはサーバーを実行し、もう 1 つはサーバーを再起動します。

サーバーを実行するバッチ ファイルは次のとおりです。


title Main Starmade Server

java -Xms4096m -Xmx6144m -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseNUMA -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=50 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:UseSSE=3 -XX:+UseLargePages -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedOops -XX:+AggressiveOpts -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -Xloggc:memory.log -Xincgc -Xshare:off -jar StarMade.jar -server

EXIT

サーバーを再起動するバッチファイルは次のとおりです。


   @echo off
              title Server Automated Restarter
       :start
        echo Starting Starmade Server
              set time=60
        set timer
      cd C:\StarMade\StarMade
              start StartServer.bat /REALTIME
        timeout 120
        echo Server Started
        timeout 5
       :loop
              cls
              IF %time% GTR 0 (
               set /a time=%time% -1
               set /a min=%time%/60 +1
                 echo Server Restarter Active
                 echo Next Restart In %time% Seconds; Less Than %min% Minutes Remaining
        cd C:\Windows\System32
        ping (my ip goes here, but I've removed it for this post) -n 2 > NUL
              goto loop
              )
    echo Killing Java Task
    timeout 5 
       taskkill /f /im java.exe
    timeout 30
    echo Restarting Starmade Server 
      cls
     goto start

明らかに、サーバーが強制的に停止されると、サーバーが技術的にクラッシュします。ゲームには "/force_save"コマンドと"/shutdown (timeInSec)"コマンドがあります。自動リスタータ バットを使用して、サーバーを実行している他のバッチ ファイルにこれらのコマンドを送信できるようにしたいと考えています。サーバーの実行中は、他のコマンドは実行されず、内部で呼び出されることはありません。サーバーを実行しているバッチ ファイル (手動で入力した場合を除く)。

4

0 に答える 0