48 lines
1.1 KiB
Bash
48 lines
1.1 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# 服务器目录
|
|||
|
|
SERVER_DIR="/mcserver/luomuqv/fuwuduan"
|
|||
|
|
# 服务器启动脚本
|
|||
|
|
START_SCRIPT="run.sh"
|
|||
|
|
# 检查间隔(秒)
|
|||
|
|
CHECK_INTERVAL=10
|
|||
|
|
# 最大重启次数(0表示无限制)
|
|||
|
|
MAX_RESTARTS=0
|
|||
|
|
# 重启计数
|
|||
|
|
RESTART_COUNT=0
|
|||
|
|
|
|||
|
|
echo "Minecraft服务器自动重启脚本启动..."
|
|||
|
|
echo "服务器目录: $SERVER_DIR"
|
|||
|
|
echo "监控脚本: $START_SCRIPT"
|
|||
|
|
|
|||
|
|
cd "$SERVER_DIR" || exit 1
|
|||
|
|
|
|||
|
|
while true; do
|
|||
|
|
echo "$(date): 启动Minecraft服务器..."
|
|||
|
|
|
|||
|
|
# 启动服务器
|
|||
|
|
./"$START_SCRIPT"
|
|||
|
|
|
|||
|
|
# 记录服务器退出
|
|||
|
|
echo "$(date): 服务器已停止,退出代码: $?"
|
|||
|
|
|
|||
|
|
# 检查是否达到最大重启次数
|
|||
|
|
if [ $MAX_RESTARTS -ne 0 ]; then
|
|||
|
|
RESTART_COUNT=$((RESTART_COUNT + 1))
|
|||
|
|
echo "重启次数: $RESTART_COUNT/$MAX_RESTARTS"
|
|||
|
|
|
|||
|
|
if [ $RESTART_COUNT -ge $MAX_RESTARTS ]; then
|
|||
|
|
echo "已达到最大重启次数,停止脚本"
|
|||
|
|
break
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 等待一段时间后重启
|
|||
|
|
echo "等待 $CHECK_INTERVAL 秒后重启..."
|
|||
|
|
sleep $CHECK_INTERVAL
|
|||
|
|
|
|||
|
|
# 可选:清理可能残留的进程
|
|||
|
|
pkill -f "java.*forge" 2>/dev/null
|
|||
|
|
sleep 2
|
|||
|
|
done
|