Minecraftのbedrock版公式サーバ(1.11.4)をminimalインストールしたCentOS7にインストールした際の手順をまとめましたが、Ubuntuで動作させることを想定しているものなので、CentOS7で動作させるのはかなり手間が掛かりました…
※bedrock_serverは2019年7月1日現在アルファ版(評価用)なので、まだ不具合が発生したり実装されいていな項目などがあると思います。
事前準備
CentOS7でbedrock公式サーバを動作させるには以下の作業が必要になります。
- OpenSSL 1.1.1 インストール
- gcc インストール
- glib インストール
minecraftのbedrockサーバでは、CentOS7で用意されているものより新しいバージョンのものが要求されているので、全てソースからインストールする必要があります。
openssl
bedrockサーバではOpenSSLのライブラリである「libssl.so.1.1」が必要とされるのですが、CentOS7に標準で用意されているOpenSSLのバージョンは「OpenSSL 1.0.2」でライブラリのバージョンが「libssl.so.10」なので、ソースからOpenSSLをインストールします。
ちなみに、CentOS7標準のOpenSSLだけがインストールされているでbedrockサーバを起動しようとすると、下記のようなエラーとなります。
$ LD_LIBRARY_PATH=. ./bedrock_server ./bedrock_server: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
「ldconfig」コマンドで確認すると「libssl.so.1.1」が存在しないことがわかります。
# ldconfig -p | grep libssl libssl3.so (libc6,x86-64) => /lib64/libssl3.so libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
事前準備
ソースからOpenSSLをイストールするためには、「gcc」「perl」「zlib-devel」が必要なのでこれらをはじめにインストールします。
# yum install gcc # yum install perl # yum install zlib-devel
インストール
Opensslのソースは「https://www.openssl.org/source/」からダウンロードできるので、今回はopenssl-1.1.1c.tar.gzをダウンロードしてインストールを行っていきます。
# curl -L -O https://www.openssl.org/source/openssl-1.1.1c.tar.gz # tar xzfv openssl-1.1.1c.tar.gz -C /usr/local/src/ # cd /usr/local/src/openssl-1.1.1c # ./config --prefix=/usr/local/openssl shared zlib # make # make install
ライブラリの追加設定
Opensslをソースからインストールしたあとに、「/etc/ld.so.conf.d/」ディレクトリに「openssl-1.1.1.conf」といったファイルを作成してインストールされたライブラリをシステムに読み込ませる設定を行う必要があります。
# cd /etc/ld.so.conf.d/ # vi openssl-1.1.1.conf
設定内容
インストールしたOpenSSLのライブラリは「/usr/local/openssl/lib」にインストールされているので、そのパスを記述します。
/usr/local/openssl/lib
設定反映
ldconfigコマンドを実行して作成したopenssl-1.1.1.confの内容を反映させます。
# ldconfig
ライブラリの確認
「ldconfig」コマンドで「libssl.so.1.1」が読み込まれているを確認してください。
# ldconfig -p | grep libssl libssl3.so (libc6,x86-64) => /lib64/libssl3.so libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10 libssl.so.1.1 (libc6,x86-64) => /usr/local/openssl/lib/libssl.so.1.1 libssl.so (libc6,x86-64) => /usr/local/openssl/lib/libssl.so
libstdc++ (gcc)
「bedrock_server」が要求する「libstdc++.so.6」のバージョンは「GLIBCXX_3.4.20」「GLIBCXX_3.4.21」「GLIBCXX_3.4.22」となっていて、CentOS7の標準で用意されている「libstdc++.so.6」はバージョンが古いので要求されているバージョンが存在しません。
$ strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_DEBUG_MESSAGE_LENGTH
このまま「bedrock_server」を起動しても下記のようにエラーとなるので、新しいバージョンの「libstdc++.so.6」を用意する必要があります。
$ LD_LIBRARY_PATH=. ./bedrock_server ./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server) ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./bedrock_server) ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ./bedrock_server) ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./bedrock_server) ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./libCrypto.so) ./bedrock_server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./libCrypto.so)
「libstdc++.so.6」は「gcc」に含まれているので、新しいバージョンの「gcc」をソースからインストールします。
事前準備
「gcc」をソースからインストールするためには「gcc-c++」「wget」「bzip2」が必要になるのでインストールを行っておきます。
# yum install gcc-c++ # yum install wget # yum install bzip2
gccインストール
今回は「gcc-9.1.0」のソースをダウンロードしてきてインストールを行っていくのですが、この作業はかなり時間がかかります…
※私の環境ではmakeに約30分ほど掛かりました。
「gcc」のソースはGNUのミラーサイト「https://gcc.gnu.org/mirrors.html」からダウンロードするサイトを選択してソースのダウンロードを行ってください。
今回は「gcc-9.1.0」をダウンロードして、インストールを行っていきます。
# curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-9.1.0/gcc-9.1.0.tar.gz # curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-9.1.0/sha512.sum # sha512sum --check sha512.sum # tar xzfv gcc-9.1.0.tar.gz -C /usr/local/src # cd /usr/local/src/gcc-9.1.0/ # ./contrib/download_prerequisites # mkdir build # cd build/ # ../configure --enable-languages=c,c++ --prefix=/usr/local --disable-bootstrap --disable-multilib # make # make install
※2020.07.07 上記手順で依存ライブラリのダウンロード手順(./contrib/download_prerequisites)が抜けていましたので追記しました。
CentOS7にgccをソースからインストールする手順については下記のページで詳しく解説しているので、興味がありましたら参考にしてみてください。
ライブラリの追加設定
ソースから「gcc」のインストールを行っても、そのままでは新しいライブラリはシステムに反映されません。
ですので、「/etc/ld.so.conf.d/」ディレクトリに「gcc-9.1.0.conf」といったファイルを作成して、インストールされたライブラリをシステムに読み込ませる設定を行います。
# cd /etc/ld.so.conf.d/ # vi gcc-9.1.0.conf
設定内容
インストールした「gcc」のライブラリは、「/usr/local/lib64」にインストールされているのでそのパスを記述します。
/usr/local/lib64
設定反映
「ldconfig」コマンドを実行して作成した「gcc-9.1.0.conf」の内容を反映させます。
# ldconfig
ライブラリの確認
# ldconfig -p | grep libstdc++.so.6 libstdc++.so.6 (libc6,x86-64) => /usr/local/lib64/libstdc++.so.6 libstdc++.so.6 (libc6,x86-64) => /lib64/libstdc++.so.6
インストールされた「/usr/local/lib64/libstdc++.so.6」に「bedrock_server」で必要な「GLIBCXX_3.4.20」「GLIBCXX_3.4.21」「GLIBCXX_3.4.22」が含まれているか確認してください。
# strings /usr/local/lib64/libstdc++.so.6 | grep ^GLIBCXX_3.4.2 | sort | uniq GLIBCXX_3.4.2 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_3.4.26
libm (glibc)
「bedrock_server」では「libm.so.6」のバージョンもCentOS7で標準に用意されているバージョンよりも新しいものが要求されます。
$ LD_LIBRARY_PATH=. ./bedrock_server ./bedrock_server: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ./bedrock_server)
「libm.so.6」は「glibc」に含まれているので、ソースをダウンロードしてきてインストールを行っていきます。
事前準備
「glibc」をソースからインストールするためには下記のものが必要になります。
- bison 2.7以上
- python 3.4以上
- make 4.0以上
「bison」については「yum」でインストールできるバージョンが「3.0.4」なので問題ないのですが、「python」と「make」についてはCentOS7の標準のリポジトリで用意されているものはバージョンが古いので、それ以外の方法でインストールする必要があります。
「python」はISUリポジトリを使用することで簡単にインストールできますが、「make」についてはソースからインストールする必要があります。
bisonインストール
「yum」でインストールを行ってください。
# yum install bison
pythonインストール
pythonはIUSリポジトリを使用してインストールすると簡単にインストールすることが出来ます。
IUSリポジトリインストール
「yum」を使用して「IUSリポジトリ」のインストールを行います。
# yum -y install https://centos7.iuscommunity.org/ius-release.rpm
IUSリポジトリのダウンロードURLが変更されたので修正しました。
新しいURLは「https://repo.ius.io/ius-release-el7.rpm」となります。
# yum -y install https://repo.ius.io/ius-release-el7.rpm
python 3.6 インストール
IUSリポジトリを使用して「python36u」「python36u-libs」「python36u-devel」「python36u-pip」をインストールします。
# yum install python36u python36u-libs python36u-devel python36u-pip
これでpython3.6.8がインストールされます。
pythonバージョン切替設定
「glibc」をインストールするために「python3.6」をインストールしたのですが、このまま「CentOS7」で使用するpythonのバージョンを3.6に変更してしまうとシステム上でpythonを使用している物に色々と問題が発生してしまいます。
わかりやすい例では「yum」が使用できなくなります。
# python --version Python 3.6.8 # yum update File "/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
システムに問題が発生しては困るので、「update-alternatives」に登録して必要な時だけ「python3.6」に切り替えられるようにしておきます。
# update-alternatives --install /bin/python python /usr/bin/python2.7 1 # update-alternatives --install /bin/python python /usr/bin/python3.6 2 # update-alternatives --config python 2 プログラムがあり 'python' を提供します。 選択 コマンド ----------------------------------------------- 1 /usr/bin/python2.7 *+ 2 /usr/bin/python3.6 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
pythonのバージョンが3.6.8になっていることを確認します。
# python --version Python 3.6.8
makeインストール
「make4系」のソースをダウンロードしてインストールを行います。
ソースのダウンロードはGNUのミラーサーバ一覧から、日本のサーバを選んでそこからダウンロードを行うのが良いでしょう。
今回は「http://ftp.jaist.ac.jp/pub/GNU/」を選択し、その中の「make」ディレクトリにある「make-4.2.1.tar.gz」をダウンロードしてインストールを行っていきます。
# cd # curl -LO http://ftp.jaist.ac.jp/pub/GNU/make/make-4.2.tar.gz # tar xzfv make-4.2.tar.gz -C /usr/local/src # cd /usr/local/src/make-4.2/ # ./configure --prefix=/usr/local/make-4.2 # make # make install
バージョン切替設定
念のため「make」も「python」と同じように「update-alternatives」に登録して、使用するバージョンを切り替えれるようにしておきます。
# mv /usr/bin/make /usr/bin/make-3.82 # update-alternatives --install /usr/bin/make make /usr/bin/make-3.82 1 # update-alternatives --install /usr/bin/make make /usr/local/make-4.2/bin/make 2 # update-alternatives --config make 2 プログラムがあり 'make' を提供します。 選択 コマンド ----------------------------------------------- 1 /usr/bin/make-3.82 *+ 2 /usr/local/make-4.2/bin/make Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
「make」のバージョンが4.2になっていることを確認します。
# make -v GNU Make 4.2 このプログラムは x86_64-pc-linux-gnu 用にビルドされました Copyright (C) 1988-2016 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL バージョン 3 以降 <http://gnu.org/licenses/gpl.html> これはフリーソフトウェアです: 自由に変更および配布できます. 法律の許す限り、 無保証 です.
glibcインストール
「glibc」をインストールするために必要なソフトのインストールが完了したら、GNUのミラーサーバ一覧「https://www.gnu.org/prep/ftp.html」から日本のサーバを選んで「glibc」ディレクトリからソースをダウンロードしインストールを行っていきます。
「make」のソースコードをダウンロードした時と同様に「http://ftp.jaist.ac.jp/pub/GNU/」を選択し、その中の「make」ディレクトリにある「make-4.2.1.tar.gz」をダウンロードしてインストールを行っていきます。
# cd # curl -LO http://ftp.jaist.ac.jp/pub/GNU/glibc/glibc-2.29.tar.gz # tar xzfv glibc-2.29.tar.gz -C /usr/local/src # cd /usr/local/src/glibc-2.29 # mkdir build # cd build # ../configure --prefix=/usr/glibc-2.29 # make # make install
これで「glibc」が「/usr/glibc-2.29/」にインストールされましたのですが、「OpenSSL」や「gcc」をインストールした時のようにライブラリをシステムに反映させる設定を行うと、システムが動作しなくなってしまいます…
ですので、「glibc」のインストール作業はこれで完了となります。
pyhtonのバージョン切替え
「glibc」のインストールが完了したら、「python」のバージョンを2.7.5に戻しておきます。
# update-alternatives --config python 2 プログラムがあり 'python' を提供します。 選択 コマンド ----------------------------------------------- 1 /usr/bin/python2.7 *+ 2 /usr/bin/python3.6 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1 # python --version Python 2.7.5
bedrock_server
「OpenSSL」「gcc」「glibc」のインストールが完了しましたら、いよいよ「bedrock_server」のインストールを行っていきます。
bedrock_server用ユーザ作成
最初に「root」ユーザで「bedrock_server」を動作させるのはセキュリティ上よろしくないので、「bedrock_server」動作させるための専用ユーザを作成します。
今回は「minecraft」というユーザを作成していきます。
# adduser minecraft # passwd minecraft
unzipインストール
「bedrcok_server」はzipで圧縮されているので、解凍するためには「unzip」が必要になるため「yum」でインストールをしておきます。
# yum install unzip
bedrock_serverインストール
「bedrcok_server」のインストールはとても簡単で、下記サイトからダウンロードしてきたzipファイルを解凍するだけです。
「マインクラフト エンドユーザーライセンス規約およびプライバシーポリシーに同意します。」にチェックを入れると「ダウンロード」ボタンが表示されるので、ボタンを右クリックし「リンクのアドレスをコピー」を選択し、ダウンロード用のURIをコピーしてください。
「bedrcok_server」用のユーザになり、インストールするディレクトリを作成し、そこにzipファイルをダウンロードして「unzip」で解凍するという作業を行います。
# su - minecraft $ mkdir bedrock $ cd bedrock $ curl -L -O https://minecraft.azureedge.net/bin-linux/bedrock-server-1.11.4.2.zip $ unzip bedrock-server-1.11.4.2.zip
glibcライブラリのコピー
ソースからインストールしたglibcのライブラリ「/usr/glibc-2.29/lib/libm.so.6」を「bedrock_server」をインストールしたディレクトリにコピーします。
これで「bedrock_server」を実行する際にコピーしたライブラリを読み込んでくれるようになります。
$ cp -p /usr/glibc-2.29/lib/libm.so.6 .
bedrock_serverの起動
いよいよ「bedrock_server」を実行します。
$ LD_LIBRARY_PATH=. ./bedrock_server [2019-07-03 22:28:14 INFO] Starting Server [2019-07-03 22:28:14 INFO] Version 1.11.4.2 [2019-07-03 22:28:14 INFO] Level Name: Bedrock level [2019-07-03 22:28:15 INFO] Game mode: 0 Survival [2019-07-03 22:28:15 INFO] Difficulty: 1 EASY [2019-07-03 22:28:19 INFO] IPv4 supported, port: 19132 [2019-07-03 22:28:19 INFO] IPv6 supported, port: 19133 [2019-07-03 22:28:21 INFO] Server started.
正常に起動すると「Server started.」と表示されます。
「bedrock_server」を停止させる場合は「stop」と入力してください。
bedrock_server用ポート開放(19132番/UDP)
Minecraftの「bedrock_server」はクライアントとの通信に「UDP」の「19132」番ポートを使用しますので、「firewalld」で該当ポートを開放しておきます。
# firewall-cmd --permanent --add-port=19132/udp success # firewall-cmd --reload success
動作確認
Minecraftのクライアントから接続して正常にログインできる確認してください。
自動起動設定
サーバを起動するたびに手動で「bedrock_server」を起動させるのはとても面倒なので、サーバ起動時に自動起動出来るように設定を行っていきます。
tmuxインストール
今回は「tmux」(端末多重化ソフト)を使用し「bedrock_server」を動作させていくため、まず「yum」でインストールを行います。
# yum install tmux
メンテナンス用スクリプト作成
はじめに「bedrock_server」の起動や停止を行うためのスクリプトを作成していきます。(バックアップ機能もつけてあります)
# su - minecraft $ cd bedrock $ vi bedrock_script.sh
スクリプト説明
スクリプト内で設定してある変数についての説明です。
変数 | 設定内容 |
---|---|
USERNAME | bedrock_server実行ユーザ設定 |
SESSION_NAME | tumuxのセッションに指定する名前を設定 |
BEDROCK_PATH | bedrock_serverがインストールされているディレクトリを設定 |
LD_LIBRARY_PATH | LD_LIBRARY_PATHを設定 |
SERVICE | 実行するbedrock_serverを設定 |
BK_DIR | バックアップしたデータを保管するディレクトリ |
BK_TIME | バックアップを取得した日時 |
FULL_BK_NAME | 完全バックアップで取得したデータにつける名前 |
SIMPLE_BK_NAME | 簡易バックアップで取得したデータにつける名前 |
BK_FILE | 簡易バックアップ対象データ |
BK_GEN | バックアップしたデータの保管数 |
実際に作成するスクリプトの内容は下記のとおりとなります。
#!/bin/bash # # bedrock_server start/stop/backup script # # bedrock_server 実行ユーザ USERNAME='minecraft' # session名 SESSION_NAME='bedrock' # bedrock_serverインストールディレクトリ BEDROCK_PATH='/home/minecraft/bedrock' # LD_LIBRARY_PATH設定 LD_LIBRARY_PATH="$BEDROCK_PATH" # 実行する bedrock_server SERVICE="$BEDROCK_PATH/bedrock_server" ## バックアップ用設定 # バックアップ格納ディレクトリ BK_DIR="/home/$USERNAME/bedrock_backup" # バックアップ取得時間 BK_TIME=`date +%Y%m%d-%H%M%S` # 完全バックアップデータ名 FULL_BK_NAME="$BK_DIR/bedrock_full_backup_${BK_TIME}.tar.gz" # 簡易パックアップデータ名 SIMPLE_BK_NAME="$BK_DIR/bedrock_simple_backup_${BK_TIME}.tar" # 簡易バックアップ対象データ BK_FILE="$BEDROCK_PATH/worlds \ $BEDROCK_PATH/valid_known_packs.json \ $BEDROCK_PATH/permissions.json \ $BEDROCK_PATH/server.properties \ $BEDROCK_PATH/whitelist.json" # バックアップデータ保存数 BK_GEN="3" cd $BEDROCK_PATH if [ ! -d $BK_DIR ]; then mkdir $BK_DIR fi ME=`whoami` if [ $ME != $USERNAME ]; then echo "Please run the $USERNAME user." exit fi # 開始処理 start() { if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "$SERVICE is already running!" else echo "Starting $SERVICE..." tmux new-session -d -s $SESSION_NAME tmux send-keys -t $SESSION_NAME:0 "LD_LIBRARY_PATH=$LD_LIBRARY_PATH $SERVICE" C-m fi } # 停止処理 stop() { if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "Stopping $SERVICE" tmux send-keys -t $SESSION_NAME:0 "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..." C-m sleep 10 tmux send-keys -t $SESSION_NAME:0 "stop" C-m sleep 10 echo "Stopped bedrock_server" else echo "$SERVICE is not running!" exit fi while : do if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "Stopping $SERVICE" sleep 10 else tmux kill-session -t $SESSION_NAME echo "Stoped $SERVICE" break fi done } # 簡易バックアップ処理 s_backup() { if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "Backup start minecraft data..." tmux send-keys -t $SESSION_NAME:0 "save hold" C-m sleep 10 tmux send-keys -t $SESSION_NAME:0 "save query " C-m tar cfv $SIMPLE_BK_NAME $BK_FILE sleep 10 tmux send-keys -t $SESSION_NAME:0 "save resume" C-m echo "bedrock_server backup compleate!" gzip -f $SIMPLE_BK_NAME find $BK_DIR -name "bedrock_simple_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \; else echo "Backup start ..." gzip -f $HOUR_BK_NAME find $BK_DIR -name "bedrock_simple_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \; fi } # 完全バックアップ処理 f_backup() { if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "Full backup start minecraft data..." tmux send-keys -t $SESSION_NAME:0 "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..." C-m sleep 10 tmux send-keys -t $SESSION_NAME:0 "save-all" C-m tmux send-keys -t $SESSION_NAME:0 "stop" C-m while : do if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "Stopping $SERVICE" sleep 10 else echo "Stopped bedrock_server" echo "Full Backup start ..." tar cfvz $FULL_BK_NAME $BEDROCK_PATH echo "Full Backup compleate!" find $BK_DIR -name "bedrock_full_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \; break fi done echo "Starting $SERVICE..." tmux send-keys -t $SESSION_NAME:0 "$SERVICE" C-m else echo "Full Backup start ..." tar cfvz $FULL_BK_NAME $BEDROCK_PATH echo "Full Backup compleate!" find $BK_DIR -name "bedrock_full_backup_*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \; fi } # 起動状態確認処理 status() { if pgrep -u $USERNAME -f $SERVICE > /dev/null; then echo "$SERVICE is already running!" exit else echo "$SERVICE is not running!" exit fi } case "$1" in start) start ;; stop) stop ;; s_backup) s_backup ;; f_backup) f_backup ;; status) status ;; *) echo $"Usage: $0 {start|stop|s_backup|f_backup|status}" esac
使用方法
スクリプトを実行する際に「start」「stop」「s_backup」「f_backup」「status」を引数として指定します。
bedrock_script.sh 引数
それぞれの引数説明です。
引数 | 動作 | 説明 |
---|---|---|
start | サーバ起動 | bedrock_serverを起動します |
stop | サーバ停止 | bedrock_serverを停止します |
s_backup | 簡易バックアップ | サーバを起動したままバックアップを実行するため、BK_FILEで指定したデータのみのバックアップとなります |
f_backup | フルバックアップ | bedrock_serverを停止後、インストールディレクトリ丸ごとバックアップをとります |
status | 起動状況確認 | bedrock_serverの起動状況を確認します |
パーミッションの変更
bedrock_server用のユーザのみが実行できるように、作成した起動スクリプトのパーミッションを変更します。
$ chmod 744 bedrock_script.sh
スクリプトの動作確認
スクリプトの作成が終わったら、次に起動と停止の動作確認を行っていきます。
スクリプトを実行する際に「-x」オプションをつけて実行すると、スクリプトの実行状況が確認できるので、正常に動作しない場合の問題切り分けに役立ててください。
起動確認
スクリプトを実行して、正常に「bedrock_server」が起動するか確認していきます。
スクリプトを実行するとスクリプトの「SESSION_NAME」で設定した名前で「tmux」のセッションが作成され、そこで「bedrock_server」が起動されます。
$ sh -x ./bedrock_script.sh start
「tmux」のセッションが作成されているかは「tmux ls」コマンドで確認することができます。
$ tmux ls bedrock: 1 windows (created Thu Jul 11 13:12:29 2019) [148x43]
このように「bedrock」セッションが作成されていることが分かります。
仮想端末へ接続(Attach)
「tmux a」と実行することでセッションに接続(Attach)することができるので、正常に起動しているかどうか確認してください。
$ tmux a
「Server started」と表示されて、コマンド入力待ちになっていれば正常に起動されています。
仮想端末から抜ける(Detach)
正常に起動していることが確認できましたら、「Ctrl」+「b」を押下した後に「d」を押下して現在接続しているセッションから抜けて(Detach)ください。
セッションから抜ける(Detach)と[detached]と表示されます。
$ tmux a <--- セッションへ接続 [detached] <--- セッションから切断後に表示される
停止確認
正常に起動することが確認できましたら、停止機能の動作確認を行っていきます。
$ sh -x ./bedrock_script.sh stop
正常に停止すると起動時に作成されたセッションがなくなります。
$ tmux ls failed to connect to server
「failed to connect to server」と表示されているので、何もセッションが起動していないことが分かります。
systemd登録用ファイル作成
「systemd」に登録するためのファイルを作成します。
$ su - # vi /etc/systemd/system/bedrock_server.service
設定説明
変数 | 説明 |
---|---|
User | bedrock_server実行ユーザ |
ExecStart | bedrock_server 起動コマンド |
ExecStop | bedrock_server 停止コマンド |
「bedrock_server」を動作させるユーザやスクリプトのパスを変更している場合は、適宜読み替えてください。
[Unit] Description=Minecraft Bedrock Server After=network.target local-fs.target [Service] Type=forking User=minecraft ExecStart=/home/minecraft/bedrock/bedrock_script.sh start ExecStop=/home/minecraft/bedrock/bedrock_script.sh stop [Install] WantedBy=multi-user.target
自動起動設定
systemd登録用のファイルの作成が終わりましたら、「systemctl enable」コマンドで登録を行います。
# systemctl enable bedrock_server.service
動作確認
自動起動の設定が終わりましたら、実際にサーバを再起動して「bedrock_server」が自動的に起動してくるか確認をしてください。
問題なく起動してくればインストール作業は完了となります。
コメント
./contrib/download_prerequisites
gcc↑これやらんと、、makeできないです・・・
ねむたみんぞく さん
コメントありがとうございます。
> ./contrib/download_prerequisites
> gcc↑これやらんと、、makeできないです・・・
すいません、この手順抜けていましたので、
修正させていただきました。
ご指摘ありがとうございます。
先日iueのリンク変わりましたよね
yum install -y https://repo.ius.io/ius-release-el7.rpm
ご指摘ありがとうございます!
URL変更になっていたの知りませんでしたのでとても助かりました。
こちらの方もあせて修正させていただきました。