2. CentOS 7 spigot の設定
Cent OS spigot の設定
参考サイト
さくらのVPSにspigotをインストール
Java インストール
■「spigot」を動作させるために必要な「java」を「yum」でインストールします。
■インストールされたjavaのバージョンは下記のコマンドで確認できます。
# java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
screenインストール
■screenインストール
今回の「spigot」インストール手順では、「screen」を使って
「spigot」を動作させるため「screen」をインストールします。
wget インストール
「Buildtools」をダウンロードするのに使う、「wget」をインストールします。
git インストール
「spigot」の実行ファイル作成(ビルド)は「Buildtools」を使って行うのですが、
その際に必要となるため「git」をインストールします。
spigot実行ユーザ作成
「spigot」を動作させるためのユーザを「adduser」コマンドで作成します。
この手順では「spiadmin」というユーザを作成しています。
# passwd spiadmin
Buildtoolsダウンロード
「spigot」をビルドするためのツールである「BuildTools」をダウンロードします。
インストールディレクトリ作成
まず、「Buildtools」をダウンロードする前に、「spigot」をインストールする(ビルドする)
ためのディレクトリを作成しておきます。
「/opt/spigot」というディレクトリを作成し、そこに「spigot」をインストールしていきます。
# cd /opt/spigot
所有者の変更
作成したディレクトリの所有者を、「spigot」を動作させるユーザに変更します。
Buildtoolsダウンロード
ここからの作業は、「su」コマンドで「spiogt」実行ユーザへ変更して作業を行います。
下記重要。
先ほど作成した「spigot」イントールディレクトリに移動し、
そこで「Buildtools」をダウンロードします。
「wget」を使用して「Buildtools」をダウンロードをしてきます。
spigot ビルド
ダウンロードしてきた「Buildtools」を使って「spigot」をビルドしていきます。
git設定
まず、事前準備としてgitの設定を行います。
この設定は「git」で改行コードを設定しないようにするために行う。
spigot ビルド実行
spigot」のビルドを行っていきますが、環境にもよりますが、この工程は結構時間かかります。
(10~20分くらい)
ビルドが完了すると、複数のファイルが作成されていますが、「spigot-x.x.x.jar」ファイルが
「spigot」の実行ファイルとなります。
apache-maven-3.2.5 BuildTools.log.txt craftbukkit-1.11.2.jar work
BuildData Bukkit Spigot
BuildTools.jar CraftBukkit spigot-1.11.2.jar
EULA(使用許諾契約)編集前準備
spigot起動
eula.txtを編集するためにspigotを起動する。
EULA(使用許諾契約)同意
eula.txt編集(使用許諾契約)
下記の部分を変更する。
■変更前
eula=false
■変更後
eula=true
spigot動作確認
「eula.txt」の編集が完了したら、再度「spigot」を起動し「minecraft」クライアントから
ログインして動作確認してください。
Loading libraries, please wait...
[16:03:16 INFO]: Starting minecraft server version 1.11.2
[16:03:16 INFO]: Loading properties
[16:03:16 INFO]: Default game type: SURVIVAL
[16:03:16 INFO]: This server is running CraftBukkit version git-Spigot-96235ab-dfee3d9 (MC: 1.11.2) (Implementing API version 1.11.2-R0.1-SNAPSHOT)
[16:03:16 INFO]: Server Ping Player Sample Count: 12
[16:03:16 INFO]: Using 4 threads for Netty based IO
[16:03:16 INFO]: Debug logging is disabled
[16:03:16 INFO]: Generating keypair
[16:03:16 INFO]: Starting Minecraft server on *:25565
[16:03:16 INFO]: Using epoll channel type
[16:03:16 INFO]: **** Beginning UUID conversion, this may take A LONG time ****
[16:03:16 INFO]: Preparing level "world"
[16:03:16 INFO]: -------- World Settings For [world] --------
[16:03:16 INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
[16:03:16 INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[16:03:16 INFO]: Hopper Transfer: 8 Hopper Check: 1 Hopper Amount: 1
[16:03:16 INFO]: Random Lighting Updates: false
[16:03:16 INFO]: Structure Info Saving: true
[16:03:16 INFO]: Custom Map Seeds: Village: 10387312 Feature: 14357617 Monument: 10387313
Slime: 987234911
[16:03:16 INFO]: Max TNT Explosions: 100
[16:03:16 INFO]: Mob Spawn Range: 4
[16:03:16 INFO]: Cactus Growth Modifier: 100%
[16:03:16 INFO]: Cane Growth Modifier: 100%
[16:03:16 INFO]: Melon Growth Modifier: 100%
[16:03:16 INFO]: Mushroom Growth Modifier: 100%
[16:03:16 INFO]: Pumpkin Growth Modifier: 100%
[16:03:16 INFO]: Sapling Growth Modifier: 100%
[16:03:16 INFO]: Wheat Growth Modifier: 100%
[16:03:16 INFO]: NetherWart Growth Modifier: 100%
[16:03:16 INFO]: Vine Growth Modifier: 100%
[16:03:16 INFO]: Cocoa Growth Modifier: 100%
[16:03:16 INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[16:03:16 INFO]: Item Merge Radius: 2.5
[16:03:16 INFO]: Item Despawn Rate: 6000
[16:03:16 INFO]: Arrow Despawn Rate: 1200
[16:03:16 INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[16:03:16 INFO]: View Distance: 10
[16:03:16 INFO]: Experience Merge Radius: 3.0
[16:03:16 INFO]: Zombie Aggressive Towards Villager: true
[16:03:16 INFO]: Nerfing mobs spawned from spawners: false
[16:03:16 INFO]: -------- World Settings For [world_nether] --------
[16:03:16 INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
[16:03:16 INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[16:03:16 INFO]: Hopper Transfer: 8 Hopper Check: 1 Hopper Amount: 1
[16:03:16 INFO]: Random Lighting Updates: false
[16:03:16 INFO]: Structure Info Saving: true
[16:03:16 INFO]: Custom Map Seeds: Village: 10387312 Feature: 14357617 Monument: 10387313 Slime: 987234911
[16:03:16 INFO]: Max TNT Explosions: 100
[16:03:16 INFO]: Mob Spawn Range: 4
[16:03:16 INFO]: Cactus Growth Modifier: 100%
[16:03:16 INFO]: Cane Growth Modifier: 100%
[16:03:16 INFO]: Melon Growth Modifier: 100%
[16:03:16 INFO]: Mushroom Growth Modifier: 100%
[16:03:16 INFO]: Pumpkin Growth Modifier: 100%
[16:03:16 INFO]: Sapling Growth Modifier: 100%
[16:03:16 INFO]: Wheat Growth Modifier: 100%
[16:03:16 INFO]: NetherWart Growth Modifier: 100%
[16:03:16 INFO]: Vine Growth Modifier: 100%
[16:03:16 INFO]: Cocoa Growth Modifier: 100%
[16:03:16 INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[16:03:16 INFO]: Item Merge Radius: 2.5
[16:03:16 INFO]: Item Despawn Rate: 6000
[16:03:16 INFO]: Arrow Despawn Rate: 1200
[16:03:16 INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[16:03:16 INFO]: View Distance: 10
[16:03:16 INFO]: Experience Merge Radius: 3.0
[16:03:16 INFO]: Zombie Aggressive Towards Villager: true
[16:03:16 INFO]: Nerfing mobs spawned from spawners: false
[16:03:16 INFO]: -------- World Settings For [world_the_end] --------
[16:03:16 INFO]: Entity Activation Range: An 32 / Mo 32 / Mi 16
[16:03:16 INFO]: Entity Tracking Range: Pl 48 / An 48 / Mo 48 / Mi 32 / Other 64
[16:03:16 INFO]: Hopper Transfer: 8 Hopper Check: 1 Hopper Amount: 1
[16:03:16 INFO]: Random Lighting Updates: false
[16:03:16 INFO]: Structure Info Saving: true
[16:03:16 INFO]: Custom Map Seeds: Village: 10387312 Feature: 14357617 Monument: 10387313 Slime: 987234911
[16:03:16 INFO]: Max TNT Explosions: 100
[16:03:16 INFO]: Mob Spawn Range: 4
[16:03:16 INFO]: Cactus Growth Modifier: 100%
[16:03:16 INFO]: Cane Growth Modifier: 100%
[16:03:16 INFO]: Melon Growth Modifier: 100%
[16:03:16 INFO]: Mushroom Growth Modifier: 100%
[16:03:16 INFO]: Pumpkin Growth Modifier: 100%
[16:03:16 INFO]: Sapling Growth Modifier: 100%
[16:03:16 INFO]: Wheat Growth Modifier: 100%
[16:03:16 INFO]: NetherWart Growth Modifier: 100%
[16:03:16 INFO]: Vine Growth Modifier: 100%
[16:03:16 INFO]: Cocoa Growth Modifier: 100%
[16:03:16 INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[16:03:16 INFO]: Item Merge Radius: 2.5
[16:03:16 INFO]: Item Despawn Rate: 6000
[16:03:16 INFO]: Arrow Despawn Rate: 1200
[16:03:16 INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[16:03:16 INFO]: View Distance: 10
[16:03:16 INFO]: Experience Merge Radius: 3.0
[16:03:16 INFO]: Zombie Aggressive Towards Villager: true
[16:03:16 INFO]: Nerfing mobs spawned from spawners: false
[16:03:16 INFO]: Preparing start region for level 0 (Seed: 3904129565960270898)
[16:03:17 INFO]: Preparing spawn area: 43%
[16:03:18 INFO]: Preparing start region for level 1 (Seed: 3904129565960270898)
[16:03:19 INFO]: Preparing start region for level 2 (Seed: 3904129565960270898)
[16:03:19 INFO]: Server permissions file permissions.yml is empty, ignoring it
[16:03:19 INFO]: Done (2.940s)! For help, type "help" or "?"
起動スクリプト 作成
「spi_stop.sh」という名前で停止スクリプトを作成していきます。
#vi spi_stop.sh
変数説明
変数 | 設定内容 |
---|---|
USERNAME | spigot実行ユーザを設定 |
SERVICE | spigot実行ファイルを設定(spigot-x.x.jarファイル名を指定) |
SCNAME | screenに指定する名前を設定(spigot-x.x.jarファイル名を指定) |
MC_PATH | spigotがインストールされているディレクトリを設定 |
USERNAME='spiadmin'
SERVICE='spigot-1.11.2.jar'
SCNAME='spigot'
SPI_PATH='/opt/spigot'
cd $SPI_PATH
ME=`whoami`
if [ $ME == $USERNAME ] ; then
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Stopping $SERVICE"
screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\015'
screen -p 0 -S $SCNAME -X eval 'stuff "save-all"\015'
sleep 10
screen -p 0 -S $SCNAME -X eval 'stuff "stop"\015'
sleep 10
echo "Stopped minecraftserver"
else
echo "$SERVICE was not runnning."
fi
else
echo "Please run the minecraft user."
fi
パーミッション設定
spigot実行ユーザのみが起動・停止シェルを実行できるように、パーミッションの設定を行います。
#chmod 744 spi_stop.sh
パーミッション確認
spigot起動ユーザのみが、実行できるようになっていることを確認します
-rwxr--r-- 1 spiadmin spiadmin 411 Mar 10 16:01 spi_start.sh
-rwxr--r-- 1 spiadmin spiadmin 631 Mar 10 16:03 spi_stop.s
screenの確認
「spi_start.sh」から起動された「spigot」はスクリプト内の「SCNAME」で設定された
名前のscreen上で実行されています。
「screen -ls」コマンドでscreenの状態を確認できます。
There is a screen on:
1472.spigot (Detached)
1 Socket in /var/run/screen/S-spiadmin.
screenへの接続
「screen -r spigot」と実行することで接続(Attach)することができるので、正常に
minecraftが起動されているかどうか確認します。
[12:34:45 INFO]: Cane Growth Modifier: 100%
[12:34:45 INFO]: Melon Growth Modifier: 100%
[12:34:45 INFO]: Mushroom Growth Modifier: 100%
[12:34:45 INFO]: Pumpkin Growth Modifier: 100%
[12:34:45 INFO]: Sapling Growth Modifier: 100%
[12:34:45 INFO]: Wheat Growth Modifier: 100%
[12:34:45 INFO]: NetherWart Growth Modifier: 100%
[12:34:45 INFO]: Tile Max Tick Time: 50ms Entity max Tick Time: 50ms
[12:34:45 INFO]: Item Despawn Rate: 6000
[12:34:45 INFO]: Item Merge Radius: 2.5
[12:34:45 INFO]: Arrow Despawn Rate: 1200
[12:34:45 INFO]: Allow Zombie Pigmen to spawn from portal blocks: true
[12:34:45 INFO]: View Distance: 10
[12:34:45 INFO]: Zombie Aggressive Towards Villager: true
[12:34:45 INFO]: Experience Merge Radius: 3.0
[12:34:45 INFO]: Preparing start region for level 0 (Seed: 6061323866878942654)
[12:34:46 INFO]: Preparing spawn area: 9%
[12:34:47 INFO]: Preparing spawn area: 68%
[12:34:48 INFO]: Preparing start region for level 1 (Seed: 6061323866878942654)
[12:34:49 INFO]: Preparing spawn area: 73%
[12:34:49 INFO]: Preparing start region for level 2 (Seed: 6061323866878942654)
[12:34:49 INFO]: Server permissions file permissions.yml is empty, ignoring it
[12:34:49 INFO]: Done (5.086s)! For help, type "help" or "?"
正常に起動が完了すると「Done」と表示されて、コマンド入力待ちになっており正常に起動されて います。
minecraftのクライアントから接続できるか試してみてください。
動作確認が終了したましたら、今接続している「screen」から抜けて(Dtach)ください。
screenからの抜け方(Detach)
「Ctrl」+「a」を押下した後に「d」を押下することで「screen」から抜ける(Detach)ことが
できます。
停止スクリプト実行確認
起動スクリプトの動作確認が終わったら、次に停止スクリプトの動作確認を行います。
停止スクリプト実行
「spigot」が無事停止できているか、「screen -ls」コマンドで確認してください。
正常にスクリプトが実行されると、「spigot」が停止し起動スクリプトで作成された「screen」も終了
します。