summarylogtreecommitdiffstats
path: root/terraria-server@.service
diff options
context:
space:
mode:
Diffstat (limited to 'terraria-server@.service')
-rw-r--r--terraria-server@.service14
1 files changed, 14 insertions, 0 deletions
diff --git a/terraria-server@.service b/terraria-server@.service
new file mode 100644
index 000000000000..a5b0f559e49c
--- /dev/null
+++ b/terraria-server@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Terraria server %i
+After=network.target
+
+[Service]
+User=terraria
+ExecStart=/usr/bin/screen -DmS terraria-%i /usr/bin/terraria-server -config /etc/terraria-server/%i.conf
+ExecStop=/usr/bin/screen -p 0 -S terraria-%i -X eval 'stuff "say Server shutting down. Saving world."\\015'
+ExecStop=/usr/bin/screen -p 0 -S terraria-%i -X eval 'stuff "save"\\015'
+ExecStop=/usr/bin/screen -p 0 -S terraria-%i -X eval 'stuff "exit"\\015'
+ExecStop=/usr/bin/sh -c 'while screen -ls | grep 'terraria-test' >/dev/null; do sleep 0.1; done'
+
+[Install]
+WantedBy=multi-user.target