久しぶりに遊びたくなったので、RockyLinuxでマイクラサーバを動かそうと思います。
minecraftのバージョンは1.21をセットアップします。
まずはJava 21とtmuxをインストールします。
# dnf -y install java-21-openjdk tmux
「/opt/minecraft/minecraft_server.1.21.jar」にサーバをダウンロードしておきます。
「/opt/minecraft/server.sh」を以下の内容で作成します。
#!/bin/bash TMUX_SESSION_NAME=minecraft cd /opt/minecraft case $1 in start) tmux new-session -s ${TMUX_SESSION_NAME} -d "java -Xmx2048M -Xms1024M -jar /opt/minecraft/minecraft_server.1.21.jar nogui";; stop) tmux send-keys -t ${TMUX_SESSION_NAME} "say this server will be shutdown!" Enter sleep 10 tmux send-keys -t ${TMUX_SESSION_NAME} "save-all" Enter sleep 5 tmux send-keys -t ${TMUX_SESSION_NAME} "stop" Enter sleep 20;; *) echo "usage server.sh [start | stop]" esac
実行権限をつけておきます。
# chmod +x /opt/minecraft/server.sh
管理ユーザを作って、初期起動させます。
# useradd mcadmin # passwd mcadmin # chown -R mcadmin:mcadmin /opt/minecraft # sudo -u mcadmin /opt/minecraft/server.sh start
しばらくするとeula.txtができてサーバが止まっているので、同意します。
eula.txtに同意したら、ファイアウォールを開けて、再度起動します。
# firewall-cmd --permanent --add-port=25565/tcp # firewall-cmd --reload # sudo -u mcadmin /opt/minecraft/server.sh start
これでクライアントから接続してみます。
接続確認ができたら終了を実行します。
# sudo -u mcadmin /opt/minecraft/server.sh stop
コマンドを実行すると接続しているクライアントにサーバメッセージが表示後にサーバが停止します。
「/etc/systemd/system/minecraft.service」を作ってsystemdで起動できるようにします。
[Unit] Description=Minecraft Server [Service] Type=forking User=mcadmin WorkingDirectory=/opt/minecraft ExecStart=/bin/bash /opt/minecraft/server.sh start ExecStop=/bin/bash /opt/minecraft/server.sh stop Restart=always [Install] WantedBy=multi-user.target
次のコマンドで起動をします。
# systemctl start minecraft.service
停止も試します。
# systemctl stop minecraft.service
動作確認ができたら、サーバーの自動起動をできるようにして終了です。
# systemctl enable --now minecraft.service