2. CentOS 7 spigot の設定


Cent OS spigot の設定
参考サイト
さくらのVPSにspigotをインストール
 

Java インストール

■「spigot」を動作させるために必要な「java」を「yum」でインストールします。

# yum -y install java

■インストールされた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」をインストールします。

# yum install screen


wget インストール

「Buildtools」をダウンロードするのに使う、「wget」をインストールします。

# yum install wget

 


git インストール

「spigot」の実行ファイル作成(ビルド)は「Buildtools」を使って行うのですが、
その際に必要となるため「git」をインストールします。

# yum install git


spigot実行ユーザ作成

「spigot」を動作させるためのユーザを「adduser」コマンドで作成します。
この手順では「spiadmin」というユーザを作成しています。

# adduser spiadmin
# passwd spiadmin

 


Buildtoolsダウンロード

「spigot」をビルドするためのツールである「BuildTools」をダウンロードします。
インストールディレクトリ作成
まず、「Buildtools」をダウンロードする前に、「spigot」をインストールする(ビルドする)
ためのディレクトリを作成しておきます。
「/opt/spigot」というディレクトリを作成し、そこに「spigot」をインストールしていきます。

# mkdir /opt/spigot
# cd /opt/spigot

所有者の変更
作成したディレクトリの所有者を、「spigot」を動作させるユーザに変更します。

# chown spiadmin:spiadmin /opt/spigot


Buildtoolsダウンロード
ここからの作業は、「su」コマンドで「spiogt」実行ユーザへ変更して作業を行います。
下記重要。

# su - spiadmin

先ほど作成した「spigot」イントールディレクトリに移動し、
そこで「Buildtools」をダウンロードします。

# cd /opt/spigot


wget」を使用して「Buildtools」をダウンロードをしてきます。


spigot ビルド

ダウンロードしてきた「Buildtools」を使って「spigot」をビルドしていきます。
git設定
まず、事前準備としてgitの設定を行います。

#git config --global --unset core.autocrlf

この設定は「git」で改行コードを設定しないようにするために行う。

spigot ビルド実行
spigot」のビルドを行っていきますが、環境にもよりますが、この工程は結構時間かかります。
(10~20分くらい)

$ java -jar BuildTools.jar

ビルドが完了すると、複数のファイルが作成されていますが、「spigot-x.x.x.jar」ファイルが
「spigot」の実行ファイルとなります。

$ ls
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を起動する。

#java -Xms1024M -Xmx1024M -jar spigot-1.11.2.jar nogui

 

EULA(使用許諾契約)同意

eula.txt編集(使用許諾契約)

# vi /opt/spigot/Spigot/eula.txt


下記の部分を変更する。
■変更前
eula=false
■変更後
eula=true

spigot動作確認
eula.txt」の編集が完了したら、再度「spigot」を起動し「minecraft」クライアントから
ログインして動作確認してください。

$ java -Xms1024M -Xmx1024M -jar spigot-1.11.2.jar nogui

 

[root@150-95-129-127 spigot]# java -Xms1024M -Xmx1024M -jar spigot-1.11.2.jar nogui
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」という名前で停止スクリプトを作成していきます。

#cd /opt/spigot
#vi spi_stop.sh


変数説明

変数 設定内容
USERNAME spigot実行ユーザを設定
SERVICE spigot実行ファイルを設定(spigot-x.x.jarファイル名を指定)
SCNAME screenに指定する名前を設定(spigot-x.x.jarファイル名を指定)
MC_PATH spigotがインストールされているディレクトリを設定

 

#!/bin/bash

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_start.sh
#chmod 744 spi_stop.sh



パーミッション確認
spigot起動ユーザのみが、実行できるようになっていることを確認します

$ ls -l spi_*
-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


スクリプト動作確認
起動スクリプト実行確認

# ./spi_start.sh


screenの確認
「spi_start.sh」から起動された「spigot」はスクリプト内の「SCNAME」で設定された
名前のscreen上で実行されています。
「screen -ls」コマンドでscreenの状態を確認できます。

$ screen -ls
There is a screen on:
1472.spigot (Detached)
1 Socket in /var/run/screen/S-spiadmin.



screenへの接続
「screen -r spigot」と実行することで接続(Attach)することができるので、正常に
minecraftが起動されているかどうか確認します。

$ screen -r spigot
[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)ことが
できます。

停止スクリプト実行確認
起動スクリプトの動作確認が終わったら、次に停止スクリプトの動作確認を行います。

停止スクリプト実行

# ./spi_stop.sh


「spigot」が無事停止できているか、「screen -ls」コマンドで確認してください。

正常にスクリプトが実行されると、「spigot」が停止し起動スクリプトで作成された「screen」も終了
します。