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
31 lines
848 B
Bash
31 lines
848 B
Bash
#!/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" |