Ubuntu 24上Minecraft 1.21服务器崩溃自动重启Bash脚本实现
Ubuntu 24 下 Minecraft 1.21 服务器崩溃自动重启方案
一、编写自动重启脚本
通过循环包裹服务器启动命令,实现崩溃后自动重启的逻辑:
- 创建脚本文件(比如
mc-auto-restart.sh),写入以下内容:
#!/bin/bash # Minecraft 1.21 服务器自动重启脚本 # 配置项,请根据实际环境修改 SERVER_DIR="/home/your-user/minecraft-server" # 服务器根目录 JAVA_BIN="/usr/bin/java" # Java可执行文件路径 JVM_OPTS="-Xmx8G -Xms4G" # JVM参数,内存大小按需调整 SERVER_JAR="server.jar" # 服务器jar包名称 # 切换到服务器目录,失败则退出 cd "$SERVER_DIR" || { echo "无法进入服务器目录,退出"; exit 1; } # 循环启动服务器 while true; do echo "[$(date '+%Y-%m-%d %H:%M:%S')] 启动 Minecraft 服务器..." $JAVA_BIN $JVM_OPTS -jar "$SERVER_JAR" nogui # 服务器退出后执行重启逻辑 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 服务器已停止,5秒后重启..." sleep 5 done
- 给脚本添加执行权限:
chmod +x mc-auto-restart.sh
二、让脚本后台持久运行
方法1:使用nohup(无需额外安装工具)
执行命令让脚本脱离终端后台运行,同时将日志输出到文件:
nohup ./mc-auto-restart.sh > server-log.txt 2>&1 &
- 日志会写入
server-log.txt,可随时查看服务器运行状态 - 关闭终端后脚本依然保持运行
方法2:使用screen(支持随时重新连接控制台)
- 安装screen:
sudo apt update && sudo apt install screen -y
- 创建新的screen会话:
screen -S mc-server
- 在会话内运行脚本:
./mc-auto-restart.sh
- 按
Ctrl+A+D组合键脱离会话,后续可通过screen -r mc-server重新连接控制台
三、可选:设置开机自启(systemd服务)
配置systemd服务实现开机自动启动,并持续监控服务状态:
- 创建服务文件
/etc/systemd/system/mc-server.service:
[Unit] Description=Minecraft 1.21 自动重启服务 After=network.target [Service] User=your-user # 替换为运行服务器的用户名 WorkingDirectory=/home/your-user/minecraft-server # 替换为服务器目录 ExecStart=/home/your-user/minecraft-server/mc-auto-restart.sh # 替换为脚本绝对路径 Restart=always # 服务异常退出时自动重启 RestartSec=5 # 重启间隔时间 [Install] WantedBy=multi-user.target
- 重新加载systemd配置并启用服务:
sudo systemctl daemon-reload sudo systemctl enable mc-server sudo systemctl start mc-server
- 查看服务状态:
sudo systemctl status mc-server - 停止服务:
sudo systemctl stop mc-server
内容的提问来源于stack exchange,提问作者amir sobhan ahmadi
相关产品推荐
相关产品推荐

