Skip to content

Instantly share code, notes, and snippets.

@lighth7015
Last active May 15, 2019 07:36
Show Gist options
  • Save lighth7015/f1fa2ce46ac5af0732014ac6d2d1d1a4 to your computer and use it in GitHub Desktop.
Save lighth7015/f1fa2ce46ac5af0732014ac6d2d1d1a4 to your computer and use it in GitHub Desktop.
[Unit]
Description=Minecraft Server: %i
After=network.target
[Service]
Type=simple
WorkingDirectory=/srv/minecraft/instances/%i
Environment="ServerArgs="
Environment="ServerName=minecraft_server.jar"
Environment="USER=minecraft"
Environment="GROUP=minecraft"
EnvironmentFile=/etc/systemd/minecraft/%i.conf
Restart=always
ExecStart=/usr/bin/screen -Dm -S mc-%i /usr/bin/java ${ServerArgs} -jar ${ServerName}.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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment