diff --git a/Host-Scripts/factorio@.service b/Host-Scripts/factorio@.service new file mode 100644 index 0000000..f2635ef --- /dev/null +++ b/Host-Scripts/factorio@.service @@ -0,0 +1,30 @@ +[Unit] +Description=Factorio Server: %i +Wants=network-online.target +After=network.target network-online.target +StartLimitIntervalSec=600 + +[Service] +Type=forking +WorkingDirectory=/opt/factorio/%i + +User=factorio +Group=factorio + +Restart=on-failure +StartLimitBurst=5 +KillSignal=SIGINT + +ExecStart=/usr/bin/screen -dmS factorio-%i /opt/factorio/%i/bin/x64/factorio --start-server /opt/factorio/%i/saves/%i.zip --server-settings /opt/factorio/%i/data/server-settings.json + +ExecStop=/usr/bin/screen -p 0 -S factorio-versionproto -X eval 'stuff "SERVER SHUTTING DOWN IN 5 MINUTES"\015' +ExecStop=/bin/sleep 240 +ExecStop=/usr/bin/screen -p 0 -S factorio-versionproto -X eval 'stuff "SERVER SHUTTING DOWN IN 1 MINUTE"\015' +ExecStop=/bin/sleep 30 +ExecStop=/usr/bin/screen -p 0 -S factorio-versionproto -X eval 'stuff "SERVER SHUTTING DOWN IN 30 SECONDS"\015' +ExecStop=/bin/sleep 20 +ExecStop=/usr/bin/screen -p 0 -S factorio-versionproto -X eval 'stuff "SERVER SHUTTING DOWN IN 10 SECONDS"\015' + +[Install] +WantedBy=multi-user.target + diff --git a/Host-Scripts/minecraft@.service b/Host-Scripts/minecraft@.service new file mode 100644 index 0000000..346e348 --- /dev/null +++ b/Host-Scripts/minecraft@.service @@ -0,0 +1,32 @@ +[Unit] +Description=Minecraft Server: %i +After=network.target + +[Service] +Type=forking +WorkingDirectory=/opt/minecraft/%i + +User=minecraft +Group=minecraft + +Restart=always +KillMode=none + +#ExecStart=/bin/sh -c '/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx8G -Xms6G -jar server.jar nogui' + +#ExecStart=/bin/sh -c '/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx8000M -Xms8000M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Daikars.new.flags=true -Dusing.aikars.flags=https://mcflags.emc.gs -jar server.jar nogui' + +## 1.19.2 +ExecStart=/usr/bin/screen -dmS mc-%i /usr/bin/java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar --nogui + +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 15 SECONDS..."\015' +ExecStop=/bin/sleep 5 +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS..."\015' +ExecStop=/bin/sleep 5 +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS..."\015' +ExecStop=/bin/sleep 5 +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"\015' +ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"\015' + +[Install] +WantedBy=multi-user.target