Rocky Linux9でmaincraftサーバを動かす

久しぶりに遊びたくなったので、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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)