使用屏幕时发生崩溃或/ stop时,如何自动重启Minecraft Spigot服务器?

时间:2020-06-02 00:30:49

标签: bash server automation minecraft restart

我使用屏幕在Linux上运行我的Minecraft Spigot服务器,以便可以在同一控制台上同时执行其他任务。 使用屏幕时,Internet和Spigot wiki上描述的所有重新启动脚本不再起作用。 “ / restart”命令也从未起作用。 那么,如果服务器崩溃或在游戏中使用“ / stop”将其关闭后,如何在短时间内自动重新启动服务器?

2 个答案:

答案 0 :(得分:2)

教程

一个朋友编写了一个bash脚本,以在发生崩溃或使用screen时使用命令“ / stop”自动重启Minecraft(spigot)服务器。 有几秒钟的时间可以使用Enter取消重新启动。 此外,上一个会话的退出代码被写入文件,该文件可用于了解服务器崩溃或重新启动的时间和原因。

您需要两个文件:

  1. “ start.sh”

#!/bin/sh

screen -d -m -S "mc_spigot_server" ./startserver.sh

  1. “ startserver.sh”

#!/bin/bash

JAR=spigot-1.15.2.jar
MAXRAM=1024M
MINRAM=1024M
TIME=20


while [ true ]; do
    java -Xmx$MAXRAM -Xms$MINRAM -jar $JAR nogui
    if [[ ! -d "exit_codes" ]]; then
        mkdir "exit_codes";
    fi
    if [[ ! -f "exit_codes/server_exit_codes.log" ]]; then
        touch "exit_codes/server_exit_codes.log";
    fi
    echo "[$(date +"%d.%m.%Y %T")] ExitCode: $?" >> exit_codes/server_exit_codes.log
    echo "----- Press enter to prevent the server from restarting in $TIME seconds -----";
    read -t $TIME input;
    if [ $? == 0 ]; then
        break;
    else
        echo "------------------- SERVER RESTARTS -------------------";
    fi
done

您可以通过更改变量来更改启动参数:

JAR =服务器文件名

MAXRAM =最大RAM

MINRAM =最小RAM

TIME =直到服务器自动重启的时间(秒)

在目录中执行以下操作:

chmod +x start.sh startserver.sh

运行启动脚本:

./start.sh
  • 要退出Minecraft屏幕,请按Ctrl + A + D

  • 要重新连接到Minecraft屏幕,请使用screen -r

您发现任何错误还是不同意?帮助我做得更好。

答案 1 :(得分:0)

自从我将操作系统从 Linux Centos 8 更改为 Ubuntu 18 以来,我遇到了这个脚本的问题。

当我使用这个脚本在 Linux Centos 8 中重启我的 Minecraft 服务器时,我没有问题;由于我将操作系统更改为 Ubuntu,我无法停止自动重启脚本。

我刚刚翻译了几行意大利语。

这是我在自动重启期间在屏幕上看到的:

console screenshot