はじめに
RTMサーバーをLinuxで立てよう!と思ったら以外につまずいたのでメモ。
構成要素
- Ubuntu 22.04 LTS x64
- Eclipse Temurin Java SE 8 JRE
- Minecraft Forge 1.7.10-10.13.4.1614
- MCRCON v0.7.2
- RTM 1.7.10.44
- NGTLib1.7.10.35
Ubuntuのインストール
サーバー機にインストールし、実行用ユーザーを作成する。
※説明例では minecraft
ユーザーを使用している。
MCRCONのインストール
Systemdでデーモン化した際に操作ができるように、MCRCONをインストールする。
# 未導入であれば入れる
sudo apt install gcc make unzip
# お好みの作業用ディレクトリ内で
wget https://github.com/Tiiffi/mcrcon/archive/refs/tags/v0.7.2.zip
unzip v0.7.2.zip
cd mcrcon-0.7.2
make
sudo make install
Temurin Java SE 8 JRE
直接wgetできないのでTemurin公式サイトから下記条件を指定して対象ファイルをダウンロードする。
- Operating System : Linux
- Architecture : x64
- Package Type : JRE
- Version : 8 - LTS
ダウンロード後、所定のディレクトリへ配置する。
配置後、ファイルを解凍して短くリネームする。
※説明例ではディレクトリに /home/minecraft/jre/
を使用している。
※他バージョンのMinecraft Serverを動かす場合を想定して、パスは通さない。
tar -xvf OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz
mv jdk8u372-b07 8
Minecraft Forgeのインストール
Minecraft Forgeはadfoc.usの仕様上、直接wgetできないのでブラウザからダウンロードして所定のディレクトリへ配置する。
※説明例では /home/minecraft/mc/forge_1.7.0_rtm/
を使用している。
配置後、インストーラーを起動する。
インストール後にForgeのJARファイル名を短くリネームする。
/home/minecraft/jre/8/bin/java -jar forge-1.7.10-10.13.4.1614-1.7.10-installer.jar --installServer
mv forge-1.7.10-10.13.4.1614-1.7.10-universal.jar server.jar
Log4j脆弱性対策のXMLファイルをMinecraft公式サイトよりwgetする。
wget https://launcher.mojang.com/v1/objects/dd2b723346a8dcd48e7f4d245f6bf09e98db9696/log4j2_17-111.xml
Systemd用の起動・終了のシェルスクリプトを用意する。
#!/bin/bash
cd ~/mc/forge_1.7.0_rtm
/home/minecraft/jdk/8/bin/java -Xmx16g -Xms8g -Dlog4j.configurationFile=log4j2_17-111.xml -jar ./server.jar nogui
※VMへのメモリ割り当ては、お使いの環境に合わせて調整してください。
#!/bin/bash
export MCRCON_HOST=localhost
export MCRCON_PORT=25575
export MCRCON_PASS=あなたのRCONパスワード
echo stop | /usr/local/bin/mcrcon -t
exit 0
一旦起動用スクリプトから起動し、EULAに同意できる場合は eula.txt
を編集する。
MCRCONを利用するための設定を server.properties
で行う。
rcon.port=25575
enable-rcon=true
rcon.password=あなたのRCONパスワード
Systemdへの登録
[Unit]
Description=RTM Server Service
[Service]
Type=simple
User=minecraft
ExecStart=/home/minecraft/mc/forge_1.7.0_rtm/start.sh
ExecStop=/home/minecraft/mc/forge_1.7.0_rtm/stop.sh
TimeoutStopSec=3000
PrivateTmp=true
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl enable rtm.service
sudo systemctl start rtm.service
journalctl -f -u rtm.service
起動を確認したら一旦Forge Serverを止めます。
systemctl stop rtm.service
RTM等のディレクトリへの配置
RTM本体とNGTLib は CurseForgeの仕様上やはりwgetできないので別途ブラウザからダウンロードする。
※今回の説明例の場合では /home/minecraft/mc/forge_1.7.0_rtm/mods/
に配置する。
Forge Serverを起動し、ログを確認する。
sudo systemctl start rtm.service
journalctl -f -u rtm.service