Skip to content
Snippets Groups Projects
Commit aeba01fe authored by TheBroTMv2's avatar TheBroTMv2
Browse files

get mc server running as PID1

this enables the server to handle sigterm by itself and makes it possible to stop the server manually through /stop for example to restore a backup
parent e3e26733
No related branches found
No related tags found
No related merge requests found
......@@ -49,23 +49,14 @@ fi
exec_stop () {
echo "\n## Recieved SIGINT/SIGTERM; Shutting down container..."
screen -wipe
screen -r mc -p 0 -X stuff "stop^M" #sendet einen string an die session und mit ^M wird ein 'Enter' simuliert
sleep 30 #Soll dafür sorgen dass der Container nicht sofort das script beendet währen in der session noch der befehl ausgeführt wird.
exit 0
}
while true
do
screen -S mc -X select . ; SCRUN=$? #Queryabfrage um rauszufindne ob screensession noch aktiv ist. Return: bool
if [ ${SCRUN} = 0 ]
then # Server läuft, zeige letzte zeilen vom log an...
clear # Aber erstmal sauber machen ^^
tail /papermc/logs/latest.log
trap exec_stop TERM INT # SIGTERM ^C etc abfangen und funktion für gracefull shutdown aufrufen
sleep 10 # CPU Zeit sparen da eine downtime von max 10s + Startzeit des javapplets vertretbar ist kann bei bedarf beliebig erhöht werden.
else # Server läuft nicht, abgestürzt, gestoppt über minecraft /stop
screen -dmS mc java -server -Xms${MC_RAM} -Xmx${MC_RAM} ${JAVA_OPTS} -jar ${JAR_NAME} nogui #Startupbefehl inkl. ENVs vom Dockerfile
screen -wipe # sollte der server mal abstürzen oder sont irgednwie ein fehler auftreten wird damit zombiesessions entfernt.
fi
screen -dmS mc java -server -Xms${MC_RAM} -Xmx${MC_RAM} ${JAVA_OPTS} -jar ${JAR_NAME} nogui #Startupbefehl inkl. ENVs vom Dockerfile
exec screen -x
screen -wipe # sollte der server mal abstürzen oder sont irgednwie ein fehler auftreten wird damit zombiesessions entfernt.
trap exec_stop TERM INT # SIGTERM ^C etc abfangen und funktion für gracefull shutdown aufrufen falls aus irgeneinem grund der server nicht der main pid ist
done
# screen will still be used to enable backup functionality without the need of essentials plugin
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment