Skip to content

Instantly share code, notes, and snippets.

@ulrich
Last active November 14, 2020 22:12
Show Gist options
  • Save ulrich/7c7d5c949047c3f7d90b91c2dcba53f3 to your computer and use it in GitHub Desktop.
Save ulrich/7c7d5c949047c3f7d90b91c2dcba53f3 to your computer and use it in GitHub Desktop.
Setup Minecraft 1.16.2 with Systemd
#!/bin/bash
sudo apt update -y \
&& sudo apt upgrade -y
sudo apt install \
wget \
screen \
default-jdk \
nmap
sudo useradd -m -r -d /opt/minecraft minecraft
sudo mkdir -p /opt/minecraft/survival
sudo wget -O /opt/minecraft/survival/minecraft_server.jar \
https://launcher.mojang.com/v1/objects/c5f6fb23c3876461d46ec380421e42b289789530/server.jar
sudo bash -c "echo eula=true > /opt/minecraft/survival/eula.txt"
sudo chown -R minecraft /opt/minecraft/survival/
sudo tee /etc/systemd/system/minecraft@.service <<EOF >/dev/null
[Unit]
Description=Minecraft Server: %i
After=network.target
[Service]
WorkingDirectory=/opt/minecraft/%i
User=minecraft
Group=minecraft
Restart=always
ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx4G -jar minecraft_server.jar nogui
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS. SAVING ALL MAPS..."5'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"5'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"5'
[Install]
WantedBy=multi-user.target
EOF
echo "Minecraft server installed."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment