diff --git a/papermc.sh b/papermc.sh index 7157e397259c61ebe559dd2e3e01fd84f20d14e4..685d1a69ebd82836fef254c6cda385c81bb16bd6 100755 --- a/papermc.sh +++ b/papermc.sh @@ -55,6 +55,11 @@ exec_stop () { exit 0 } +start_server () { + 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. +} + while true do screen -S mc -X select . ; SCRUN=$? #Queryabfrage um rauszufindne ob screensession noch aktiv ist. Return: bool @@ -62,10 +67,27 @@ while true then # Server läuft, zeige letzte zeilen vom log an... clear # Aber erstmal sauber machen ^^ tail /papermc/logs/latest.log + read befehl + case $befehl in + backup + screen -r mc -p 0 -X stuff "stop^M" + bash backup.sh + ;; + stop + exec_stop + ;; + restart + screen -r mc -p 0 -X stuff "stop^M" + ;; + restore + screen -r mc -p 0 -X stuff "stop^M" + bash restore.sh + "\n## Please download Plugins and then start the container again. Press any key to continue" + read + ;; + esac 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. + start_server fi done