月別アーカイブ: 2013年6月

Minecraft Server on FreeBSD 9.1-STABLE

いろいろあって Minecraft のサーバーを自宅のFreeBSD stable/9 環境で動かした記録。
なお、各プロンプトは #=root、%=一般ユーザ(今回の場合はminecraft)として記録する。
また、この記録は個人的なものであり、この記述を真似・参考にされるなどした際に問題が起きても当方はいかなる責任も負わない。

環境

  • FreeBSD 9.1-STABLE (r251971) amd64
  • 専用のjail環境を作成した
  • Minecraft 1.5.2
  • OpenJDK7 (openjdk-7.21.11)
  • minecraftユーザ(/home/minecraft)で動作させる。
  • minecraft_server.jar 設置場所:/home/minecraft/server

portsからインストール

  • java/openjdk7 (Minecraftを動かすのに必要)
  • sysutils/screen (起動スクリプトが要求)

minecraftユーザの作成

# adduser
Username: minecraft
Full name: 
Uid (Leave empty for default): 
Login group [minecraft]: 
Login group is minecraft. Invite minecraft into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/minecraft]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: 
Use an empty password? (yes/no) [no]: 
Use a random password? (yes/no) [no]: 
Enter password: (パスワード)
Enter password again: (パスワード)
Lock out the account after creation? [no]: n

プログラムの取得

# su - minecraft
% mkdir ~/server
% cd ~/server
% fetch https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
% exit

起動スクリプト取得・自動起動設定

# fetch -o /usr/local/etc/rc.d/minecraft http://vidya.dyndns.org/stuff/minecraft
# chmod 0555 /usr/local/etc/rc.d/minecraft
# vi /etc/rc.conf.local
---
minecraft_enable="YES"
minecraft_user="minecraft"
minecraft_chdir="/home/minecraft/server"
minecraft_path="/home/minecraft/server/minecraft_server.jar"
---
# service minecraft start

psコマンド等でプロセスの起動を確認し、クライアントから接続して動作確認する。プロセスが起動しない場合は、起動スクリプトを使わずjavaコマンドで起動し、エラーを確認する。クライアントから接続できない場合はネットワーク周りを疑う(ネットワーク環境は個々に違うものなので、ここでは触れない。場合によってはファイアーウォールでのポート単位の通信制限の解除や、NAT配下の場合は特別な設定が必要になるだろう)

javaコマンドでの起動例
# java -Xmx1024M -Xms1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing \
-XX:ParallelGCThreads=4 -XX:+AggressiveOpts -jar minecraft_server.jar nogui

サーバー起動・終了コマンド等

  • 起動:service minecraft start
  • 終了:service minecraft stop
  • restart は当方の環境では失敗する様だった。

サーバー設定変更

  • 生成された ops.txt に自分のIDを追加する
  • server.propertiesにてホワイトリストを有効化(white-list=true)

反映には再起動(service minecraft stop && service minecraft start)のこと。

Mod追加

準備(jarを展開する)

# service minecraft stop
% cd ~/server
% mkdir minecraft_server
% cd minecraft_server
% jar xvf ../minecraft_server.jar

Minecraft Forgeの導入とjar再生成

Minecraft Forgeはダウンロードし、 ~minecraft/serverにzipを配置済みとする。

% cd ~/server
% mkdir forge
% cd forge
% unzip ../minecraftforge-universal-1.5.2-7.8.1.737.zip
% cp -Rp . ../minecraft_server/
% mv ../minecraft_server.jar ../minecraft_server.jar.20130622
% jar cvfm ../minecraft_server.jar META-INF/MANIFEST.MF .

jarコマンドはtarライクだが、jar作成時にmオプションを指定し、マニフェストファイルの指定が必要とのこと。Mod導入の反映には要・Minecraft 再起動。

参考URL