From 17bb4b99977b031c5b762265b28744216ccced21 Mon Sep 17 00:00:00 2001 From: Henry Corse Date: Mon, 12 Dec 2022 17:18:05 -0500 Subject: [PATCH] mineserver is fully functional per initial testing --- mineserve | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/mineserve b/mineserve index e69de29..151654c 100755 --- a/mineserve +++ b/mineserve @@ -0,0 +1,68 @@ +#!/bin/bash + +PID=/opt/minecraft/mc.pid + +status() { + screen -S minecraft -X stuff "list " + echo + echo "== Status ==" + ps -p $(cat $PID) -o %cpu,%mem,cmd + echo + LAST_STATUS=$(cat logs/latest.log | grep -n "players online:" | tail -n1 | cut -d ":" -f 1) + tail -n +$LAST_STATUS logs/latest.log + echo +} + +serve() { + java -Xms1G -Xmx5G -jar server.jar nogui +} + +start() { + if test -f "$PID"; then + echo "Server already running with pid: $(cat $PID)" + status + exit 0 + fi + screen -S minecraft -dm serve + pgrep -P "$(screen -list | sed -E -n 's/\s*([0-9]+).minecraft.*/\1/p')" > $PID +} + +stop() { + if test -f "$PID"; then + screen -S minecraft -X stuff "stop " + echo -n "Waiting for shutdown..." + while screen -list | grep -q "minecraft"; do + sleep 3 + echo -n "." + done + echo " Shutdown Complete!" + rm $PID + exit 0 + fi + echo "No server is running..." +} + +case "$1" in + 'start') + start + ;; + 'stop') + stop + ;; + 'restart') + stop + start + ;; + 'status') + status + ;; + *) + echo + echo "Usage: $0 { start | stop | restart | status }" + echo + exit 1 + ;; +esac + +exit 0 +