updates to run files
minecraft-build-minecraft / Docker prune (vm-docker-build2) (push) Successful in 2s
minecraft-build-testing / Docker prune (vm-docker-build2) (push) Successful in 3s
minecraft-build-minecraft / poll-debian-base-and-detect-changes (push) Successful in 24s
minecraft-build-testing / poll-debian-base-and-detect-changes (push) Successful in 24s
minecraft-build-testing / Build and Push testing (push) Successful in 17s
minecraft-build-minecraft / Build and Push minecraft (push) Successful in 28s
minecraft-build-testing / generate-changelogs (push) Successful in 8s
minecraft-build-minecraft / generate-changelogs (push) Successful in 8s
minecraft-build-testing / generate-build-info (push) Successful in 13s
minecraft-build-minecraft / generate-build-info (push) Successful in 11s

This commit is contained in:
2026-07-21 12:46:13 -07:00
parent be57155b51
commit 6e2e58d059
15 changed files with 177 additions and 284 deletions
+14 -93
View File
@@ -8,6 +8,10 @@ EULA_FILE=$MC_DIR/eula.txt
EULA_MARKER=$MC_DIR/.eula_accepted
SERVER_PROPERTIES=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/minecraft/server.properties
RUN_VANILLA=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-vanilla.sh
RUN_BUKKIT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-bukkit.sh
RUN_FABRIC=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-fabric.sh
RUN_QUILT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-quilt.sh
VERSION_CHECK=$(curl -s "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json" | grep -Pom 1 '"url": "\K[^"]*'$MC_VERSION'.json')
MC_SERVER_FILE=$(curl -s $VERSION_CHECK | jq --raw-output '.downloads.server.url')
@@ -86,29 +90,14 @@ if [ $MC_TYPE = "vanilla" ]; then
echo "INFO ! Cleaning old files."
cd $MC_DIR
mkdir -pv old-server-versions/
rm -fr *.jar
rm -fr libraries
rm -fr *.jar libraries defaultconfigs config mods user_jvm_args.txt run.bat
mv -v *.log old-server-versions/
wget --no-cache --show-progress --progress=bar:force:noscroll $MC_SERVER_FILE -O mcserver-$MC_VERSION.jar
chmod +x mcserver-$MC_VERSION.jar
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2022 fithwum
# All rights reserved
cd /mcserver
JAR=./mcserver-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
if [ $? -eq 0 ]; then
break
fi
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_VANILLA -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -125,29 +114,14 @@ elif [ $MC_TYPE = "bukkit" ]; then
echo "INFO ! Cleaning old files."
cd $MC_DIR
mkdir -pv old-server-versions/
rm -fr *.jar
rm -fr libraries
rm -fr *.jar libraries defaultconfigs config mods user_jvm_args.txt run.bat
mv -v *.log old-server-versions/
wget --no-cache --show-progress --progress=bar:force:noscroll $BUKKIT_INSTALLER_FILE -O craftbukkit-$MC_VERSION.jar
chmod +x craftbukkit-$MC_VERSION.jar
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2022 fithwum
# All rights reserved
cd /mcserver
JAR=./craftbukkit-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
if [ $? -eq 0 ]; then
break
fi
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_BUKKIT -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -164,29 +138,14 @@ elif [ $MC_TYPE = "fabric" ]; then
echo "INFO ! Cleaning old files."
cd $MC_DIR
mkdir -pv old-server-versions/
rm -fr *.jar
rm -fr libraries
rm -fr *.jar libraries defaultconfigs config mods user_jvm_args.txt run.bat
mv -v *.log old-server-versions/
wget --no-cache --show-progress --progress=bar:force:noscroll $FABRIC_SERVER_FILE -O fabric-$MC_VERSION-$FABRIC_VERSION.jar
chmod +x fabric-$MC_VERSION-$FABRIC_VERSION.jar
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2022 fithwum
# All rights reserved
cd /mcserver
JAR=./fabric-*-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
if [ $? -eq 0 ]; then
break
fi
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_FABRIC -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -203,8 +162,7 @@ elif [ $MC_TYPE = "quilt" ]; then
echo "INFO ! Cleaning old files."
cd $MC_DIR
mkdir -pv old-server-versions/
rm -fr *.jar
rm -fr libraries
rm -fr *.jar libraries defaultconfigs config mods user_jvm_args.txt run.bat
mv -v *.log old-server-versions/
wget --no-cache --show-progress --progress=bar:force:noscroll $QUILT_INSTALLER_FILE -O quilt-installer-$QUILT_VERSION.jar
chmod +x quilt-installer-$QUILT_VERSION.jar
@@ -216,21 +174,7 @@ elif [ $MC_TYPE = "quilt" ]; then
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2022 fithwum
# All rights reserved
cd /mcserver
JAR=./quilt-server-launch.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
if [ $? -eq 0 ]; then
break
fi
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_QUILT -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -247,8 +191,7 @@ elif [ $MC_TYPE = "forge" ]; then
echo "INFO ! Cleaning old files."
cd $MC_DIR
mkdir -pv old-server-versions/
rm -fr *.jar
rm -fr libraries
rm -fr *.jar libraries defaultconfigs config mods user_jvm_args.txt run.bat
mv -v *.log old-server-versions/
mv -v run-*.sh old-server-versions/
wget --no-cache --show-progress --progress=bar:force:noscroll $FORGE_INSTALLER_FILE -O forge-$MC_VERSION-$FORGE_VERSION-installer.jar
@@ -276,8 +219,7 @@ elif [ $MC_TYPE = "neoforged" ]; then
echo "INFO ! Cleaning old files."
cd $MC_DIR
mkdir -pv old-server-versions/
rm -fr *.jar
rm -fr libraries
rm -fr *.jar libraries defaultconfigs config mods user_jvm_args.txt run.bat
mv -v *.log old-server-versions/
mv -v run-*.sh old-server-versions/
wget --no-cache --show-progress --progress=bar:force:noscroll $NEOFORGED_INSTALLER_FILE -O neoforge-$NEOFORGED_VERSION-installer.jar
@@ -336,27 +278,6 @@ else
sleep infinity
fi
# if [ -f /usr/local/bin/rcon-cli.jar ]; then
# echo "INFO ! rcon-cli.jar found ... moving on."
# else
# echo "INFO ! rcon-cli.jar missing ... downloading now."
# wget --no-cache --show-progress --progress=bar:force:noscroll https://github.com/LCLPYT/RconCli/releases/latest/download/rcon-cli.jar -O /usr/local/bin/rcon-cli.jar
# fi
# if [ -f connect.sh ]; then
# echo "INFO ! connect.sh found ... moving on."
# else
# cat > connect.sh <<- "EOF"
# #!/bin/bash
# # Copyright (c) 2026 fithwum
# # All rights reserved
# java -jar /usr/local/bin/rcon-cli.jar --host 127.0.0.1 --port "$RCON_PORT" --password "$RCON_PASSWORD" \
# "list"
# EOF
# chmod +x connect.sh
# fi
# Set permissions.
chown 99:100 -R $MC_DIR
chmod 776 -R $MC_DIR
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./craftbukkit-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./fabric-*-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./quilt-server-launch.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./mcserver-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+1 -1
View File
@@ -29,7 +29,7 @@ ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/maste
# Install Java & Dependencies.
RUN apt-get -y update \
&& apt-get install -y --no-install-recommends bzip2 lsb-release jq screen tmux \
&& apt-get install -y --no-install-recommends bzip2 lsb-release jq screen \
&& apt-get -y --fix-broken install \
&& apt-get -y autoclean \
&& apt-get -y autoremove \
+11 -110
View File
@@ -16,9 +16,11 @@ EULA_FILE=$MC_DIR/eula.txt
EULA_MARKER=$MC_DIR/.eula_accepted
SERVER_PROPERTIES=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/server.properties
START_FILE_1=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start-screen-1.sh
START_FILE_2=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start-screen-2.sh
START_FILE_3=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start-tmux.sh
START_FILE=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/start.sh
RUN_VANILLA=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-vanilla.sh
RUN_BUKKIT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-bukkit.sh
RUN_FABRIC=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-fabric.sh
RUN_QUILT=https://gitea.fithwum.tech/fithwum/minecraft/raw/branch/master/testing/run-quilt.sh
VERSION_CHECK=$(curl -s "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json" | grep -Pom 1 '"url": "\K[^"]*'$MC_VERSION'.json')
MC_SERVER_FILE=$(curl -s $VERSION_CHECK | jq --raw-output '.downloads.server.url')
@@ -104,27 +106,7 @@ if [ $MC_TYPE = "vanilla" ]; then
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./mcserver-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_VANILLA -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -148,27 +130,7 @@ elif [ $MC_TYPE = "bukkit" ]; then
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./craftbukkit-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_BUKKIT -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -192,27 +154,7 @@ elif [ $MC_TYPE = "fabric" ]; then
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./fabric-*-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_FABRIC -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -241,27 +183,7 @@ elif [ $MC_TYPE = "quilt" ]; then
echo " "
echo "WARNING ! run-$MC_TYPE-$MC_VERSION.sh is out of date/missing ... will generate now."
mv -v run-*.sh old-server-versions/
cat > run-$MC_TYPE-$MC_VERSION.sh <<- "EOF"
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./quilt-server-launch.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
EOF
wget --no-cache --show-progress --progress=bar:force:noscroll $RUN_QUILT -O run-$MC_TYPE-$MC_VERSION.sh
chmod +x run-$MC_TYPE-$MC_VERSION.sh
cd ..
fi
@@ -372,32 +294,12 @@ else
sleep infinity
fi
# if [ -f /usr/local/bin/rcon-cli.jar ]; then
# echo "INFO ! rcon-cli.jar found ... moving on."
# else
# echo "INFO ! rcon-cli.jar missing ... downloading now."
# wget --no-cache --show-progress --progress=bar:force:noscroll https://github.com/LCLPYT/RconCli/releases/latest/download/rcon-cli.jar -O /usr/local/bin/rcon-cli.jar
# fi
# if [ -f connect.sh ]; then
# echo "INFO ! connect.sh found ... moving on."
# else
# cat > connect.sh <<- "EOF"
# #!/bin/bash
# # Copyright (c) 2026 fithwum
# # All rights reserved
# java -jar /usr/local/bin/rcon-cli.jar --host 127.0.0.1 --port "$RCON_PORT" --password "$RCON_PASSWORD" \
# "list"
# EOF
# chmod +x connect.sh
# fi
# Download the start file for the screen session
if [ -f $MC_DIR/start.sh ]; then
echo "INFO ! start.sh found ... moving on."
else
echo "WARNING ! start.sh missing ... downloading default file."
wget --no-cache --show-progress --progress=bar:force:noscroll $START_FILE_3 -O $MC_DIR/start.sh
wget --no-cache --show-progress --progress=bar:force:noscroll $START_FILE -O $MC_DIR/start.sh
chmod +x $MC_DIR/start.sh
fi
@@ -412,6 +314,5 @@ echo " "
echo "INFO ! Starting Minecraft Server $MC_TYPE-$MC_VERSION"
cd $MC_DIR
exec ./start.sh
# exec ./run-$MC_TYPE-$MC_VERSION.sh
exit
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./craftbukkit-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./fabric-*-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./quilt-server-launch.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
JAR=./mcserver-*.jar
while [ true ]; do
java -Xmx$XMX_SIZE -Xms$XMS_SIZE -Xmn$XMN_SIZE -Dbungee.epoll=false -jar $JAR nogui
EXIT_CODE=$?
echo "Minecraft exited with code $EXIT_CODE"
[ "$EXIT_CODE" -eq 0 ] && break
echo "Restarting server in 5 seconds..."
sleep 5
done
-14
View File
@@ -1,14 +0,0 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
cd /mcserver
# Check if a screen session is already running
if screen -list | grep -q "mcserver"; then
echo "INFO ! A screen session for the Minecraft server is already running."
else
# Start the Minecraft server in a detached screen session
echo "INFO ! Starting Minecraft Server in a screen session."
screen -mS mcserver bash -c ./run-$MC_TYPE-$MC_VERSION.sh
fi
-34
View File
@@ -1,34 +0,0 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
LOGFILE=/mcserver/logs/latest.log
SESSION=mcserver
cd /mcserver
# Check if a screen session is already running
if screen -list | grep -q "$SESSION"; then
echo "INFO ! A screen session for the Minecraft server is already running."
cleanup() {
echo "[INFO] Stopping Minecraft..."
screen -S "$SESSION" -X $SESSION "stop$(printf '\r')"
# Wait up to 60 seconds
for i in {1..60}; do
if ! screen -list | grep -q "$SESSION"; then
break
fi
sleep 1
done
# Kill it if it's still alive
screen -S "$SESSION" -X quit 2>/dev/null || true
exit 0
}
trap cleanup SIGINT SIGTERM
else
# Start the Minecraft server in a detached screen session
echo "INFO ! Starting Minecraft Server in a screen session."
touch "$LOGFILE"
screen -L -Logfile "$LOGFILE" -S "$SESSION" bash -c ./run-$MC_TYPE-$MC_VERSION.sh
exec tail -F "$LOGFILE"
fi
-32
View File
@@ -1,32 +0,0 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
LOGFILE=/mcserver/logs/latest.log
SESSION=mcserver
cd /mcserver
mkdir -p "$(dirname "$LOGFILE")"
touch "$LOGFILE"
cleanup() {
echo "[INFO] Stopping Minecraft..."
if tmux has-session -t "$SESSION" 2>/dev/null; then
tmux send-keys -t "$SESSION" "stop" Enter
for i in {1..60}; do
tmux has-session -t "$SESSION" 2>/dev/null || break
sleep 1
done
tmux kill-session -t "$SESSION" 2>/dev/null || true
fi
exit 0
}
trap cleanup SIGTERM SIGINT
echo "INFO ! Starting Minecraft Server $MC_TYPE-$MC_VERSION"
tmux new-session -d -s "$SESSION" \
"cd $MC_DIR && ./run-$MC_TYPE-$MC_VERSION.sh 2>&1 | tee -a '$LOGFILE'"
exec tail -F "$LOGFILE"
+31
View File
@@ -0,0 +1,31 @@
#!/bin/bash
# Copyright (c) 2026 fithwum
# All rights reserved
LOGFILE=/mcserver/logs/latest.log
SESSION=mcserver
cd /mcserver
echo "INFO ! A screen session for the Minecraft server is already running."
cleanup() {
echo "[INFO] Stopping Minecraft..."
screen -S "$SESSION" -X $SESSION "stop$(printf '\r')"
# Wait up to 60 seconds
for i in {1..60}; do
if ! screen -list | grep -q "$SESSION"; then
break
fi
sleep 1
done
# Kill it if it's still alive
screen -S "$SESSION" -X quit 2>/dev/null || true
exit 0
}
trap cleanup SIGINT SIGTERM
# Start the Minecraft server in a detached screen session
echo "INFO ! Starting Minecraft Server in a screen session."
touch "$LOGFILE"
screen -L -Logfile "$LOGFILE" -dmS "$SESSION" bash -c ./run-$MC_TYPE-$MC_VERSION.sh
exec tail -F "$LOGFILE"