# Install dependencies
sudo yum install -y java-1.8.0-openjdk screen
# Create a new unprivileged user for minecraft
useradd -r -m -d /opt/minecraft minecraft
# Create the directory that will house our minecraft instances
sudo su --shell /bin/bash minecraft
mkdir instances
exit
# Copy the [email protected] file into the correct place.
sudo vi /etc/systemd/system/[email protected]
# Reload systemd units
sudo systemctl daemon-reload
# Sudo into the minecraft user's shell
sudo su --shell /bin/bash minecraft
# Move into the instances directory
cd instances
# Create a new folder to house your instance
mkdir server1
# Install your minecraft instance, and make sure there is a minecraft_server.jar file.
# If you use Forge servers, you can use the following:
ln -s forge*.jar minecraft_server.jar
# Start and enable (start after boot) the server.
sudo systemctl start minecraft@server1
sudo systemctl enable minecraft@server1
I had to add "Type=forking" to the file for systemctl to interpret it correctly, and not start/stop-loop the [email protected]
[Unit]
Description=Minecraft Unmodded: %i
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/survival
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 10 SECONDS..."\015'
ExecStop=/bin/sleep 10
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'
ExecStop=/bin/sleep 25
[Install]
WantedBy=multi-user.target