Last active
August 7, 2018 09:05
-
-
Save ConoHa/ec1a0a8c7a8f9e5bf6d3654bcb1e47d1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -eu | |
readonly MINECRAFT_DIR="/opt/minecraft_server/" | |
readonly MINECRAFT_SERVER_OLD_VER="1.12.2" | |
readonly MINECRAFT_SERVER_NEW_VER="1.13.0" | |
readonly BACKUP_DIR_PREFIX="backup" | |
readonly BACKUP_DIR="${MINECRAFT_SERVER_OLD_VER}-$(date --iso-8601='minutes')" | |
readonly MINECRAFT_SERVER_SERVICE="/etc/systemd/system/minecraft-server.service" | |
systemctl disable --now minecraft-server.service | |
groupadd minecraft || true | |
useradd -g minecraft minecraft || true | |
yum install -y screen | |
mkdir -p ${MINECRAFT_DIR}/${BACKUP_DIR_PREFIX}/${BACKUP_DIR} | |
cp -r ${MINECRAFT_DIR}/[^backup]* ${MINECRAFT_DIR}/${BACKUP_DIR_PREFIX}/${BACKUP_DIR} | |
mv /etc/systemd/system/minecraft-server.service ${MINECRAFT_DIR}/${BACKUP_DIR_PREFIX}/${BACKUP_DIR} | |
rm ${MINECRAFT_DIR}/minecraft_server.${MINECRAFT_SERVER_OLD_VER}.jar | |
wget https://launcher.mojang.com/mc/game/1.13/server/d0caafb8438ebd206f99930cfaecfa6c9a13dca0/server.jar -O ${MINECRAFT_DIR}/minecraft_server.${MINECRAFT_SERVER_NEW_VER}.jar | |
chown -R minecraft:minecraft ${MINECRAFT_DIR} | |
cat >> ${MINECRAFT_SERVER_SERVICE} <<EOF | |
[Unit] | |
Description=Minecraft Server | |
After=network.target | |
[Service] | |
WorkingDirectory=${MINECRAFT_DIR} | |
User=minecraft | |
Group=minecraft | |
ProtectSystem=full | |
ProtectHome=true | |
ExecStart=/bin/sh -c '/usr/bin/screen -DmS minecraft /usr/bin/java -server -Xms512M -Xmx2048M -XX:+UseG1GC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -jar ${MINECRAFT_DIR}/minecraft_server.${MINECRAFT_SERVER_NEW_VER}.jar --forceUpgrade nogui' | |
ExecReload=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "reload"\\015' | |
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015' | |
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' | |
ExecStop=/bin/sleep 5 | |
Restart=on-failure | |
RestartSec=60s | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl daemon-reload | |
systemctl enable --now minecraft-server.service | |
echo "Version up finished" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment