systemd units for game srvs

This commit is contained in:
Noah L. Schrick 2023-09-24 16:09:05 -05:00
parent 2f5ee16bb3
commit fd90747cab
2 changed files with 62 additions and 0 deletions

View File

@ -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

View File

@ -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