Minecraft Server Systemd Service - Pachwenko/my-docs GitHub Wiki

Auto start + stop minecraft server using systemd. Uses Screen to allow admin access

Copied from https://gist.github.com/justinjahn/4fe65b552b0622662420928cc8ffc7c0

Put this in /etc/systemd/system/minecraft.service

[Unit]
Description=Minecraft Server
After=network.target

[Service]
WorkingDirectory=/home/minecraft/minecraft
KillMode=none

User=minecraft
Group=minecraft

Restart=always

ExecStart=/usr/bin/screen -DmS minecraft /usr/bin/bash /home/minecraft/minecraft/start.sh

ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN IN 15 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "stop"\015'

[Install]
WantedBy=multi-user.target

Start and enable with:

sudo systemctl start minecraft
sudo systemctl enable minecraft

Access admin with screen -R mc-server