Minecraftマルチサーバ作成 Part8(統合版サーバ起動編)
こんにちは かなで です。
Minecraftサーバを立てるべく、前回はMinecraft統合版マルチサーバのインストールまで行いました。
今回は、待ちに待った?「Minecraftサーバ」を起動したいと思います。
前回の続きで、Teraterm画面から。
cd /home/opc/minecraft-bedrock-server
一応サーバがあるディレクトリへ移動しておきます。
次に「netstat -anu | grep 19132」を打ちます。
[root /home/opc/minecraft-bedrock-server]#netstat -anu | grep 19132 [root /home/opc/minecraft-bedrock-server]#
はい。何も表示されませんね。
これは「UDPの19132番ポートで待ち受けしてる状態かどうかを確認」するコマンドです。
何も表示されていないという事は、待ち受けしていないという事ですね。
マインクラフトサーバが正常に起動したら、ここになんらかの表示がされるはずですので、その比較として打っておきましょう。
こちらも比較用に打っておきます。
ps -aefl | grep bedrock_server | grep -v grep
[root /home/opc]#ps -aefl | grep bedrock_server | grep -v grep [root /home/opc]#
こちらも何も表示されていませんね。こちらは今から起動させるMinecraftサーバが起動しているかどうかがわかるコマンドになります。
次に以下のコマンドを打ちます。
「LD_LIBRARY_PATH=. ./bedrock_server」
うまくいけば、これだけで起動するようです。
が!
[root /home/opc/minecraft-bedrock-server]#LD_LIBRARY_PATH=. ./bedrock_server ./bedrock_server: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory [root /home/opc/minecraft-bedrock-server]#
私は、うまくいきませんでした。
このメッセージが出てきたら、「libnsl」をインストールすればいいようです。
dnf install libnsl
[root /home/opc/minecraft-bedrock-server]#dnf install libnsl Last metadata expiration check: 2:04:00 ago on Sat 05 Mar 2022 10:50:49 AM GMT. Dependencies resolved. ===================================================================================================================================================== Package Architecture Version Repository Size ===================================================================================================================================================== Installing: libnsl x86_64 2.28-164.0.4.el8 ol8_baseos_latest 104 k Upgrading: glibc x86_64 2.28-164.0.4.el8 ol8_baseos_latest 3.6 M glibc-common x86_64 2.28-164.0.4.el8 ol8_baseos_latest 1.3 M glibc-devel x86_64 2.28-164.0.4.el8 ol8_baseos_latest 1.0 M glibc-headers x86_64 2.28-164.0.4.el8 ol8_baseos_latest 481 k glibc-langpack-en x86_64 2.28-164.0.4.el8 ol8_baseos_latest 829 k Transaction Summary ===================================================================================================================================================== Install 1 Package Upgrade 5 Packages Total download size: 7.3 M Is this ok [y/N]:
7.3M分ダウンロード&インストールするけどOK?という選択肢が出てくるので、「y」を押して進めます。
Is this ok [y/N]: y Downloading Packages: (1/6): libnsl-2.28-164.0.4.el8.x86_64.rpm 968 kB/s | 104 kB 00:00 (2/6): glibc-common-2.28-164.0.4.el8.x86_64.rpm 8.5 MB/s | 1.3 MB 00:00 (3/6): glibc-headers-2.28-164.0.4.el8.x86_64.rpm 6.3 MB/s | 481 kB 00:00 (4/6): glibc-devel-2.28-164.0.4.el8.x86_64.rpm 5.8 MB/s | 1.0 MB 00:00 (5/6): glibc-2.28-164.0.4.el8.x86_64.rpm 9.9 MB/s | 3.6 MB 00:00 (6/6): glibc-langpack-en-2.28-164.0.4.el8.x86_64.rpm 5.3 MB/s | 829 kB 00:00 ----------------------------------------------------------------------------------------------------------------------------------------------------- Total 19 MB/s | 7.3 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Upgrading : glibc-common-2.28-164.0.4.el8.x86_64 1/11 Upgrading : glibc-langpack-en-2.28-164.0.4.el8.x86_64 2/11 Running scriptlet: glibc-2.28-164.0.4.el8.x86_64 3/11 Upgrading : glibc-2.28-164.0.4.el8.x86_64 3/11 Running scriptlet: glibc-2.28-164.0.4.el8.x86_64 3/11 Running scriptlet: glibc-headers-2.28-164.0.4.el8.x86_64 4/11 Upgrading : glibc-headers-2.28-164.0.4.el8.x86_64 4/11 Upgrading : glibc-devel-2.28-164.0.4.el8.x86_64 5/11 Running scriptlet: glibc-devel-2.28-164.0.4.el8.x86_64 5/11 Installing : libnsl-2.28-164.0.4.el8.x86_64 6/11 Running scriptlet: glibc-devel-2.28-164.0.1.el8.x86_64 7/11 Cleanup : glibc-devel-2.28-164.0.1.el8.x86_64 7/11 Cleanup : glibc-headers-2.28-164.0.1.el8.x86_64 8/11 Cleanup : glibc-2.28-164.0.1.el8.x86_64 9/11 Cleanup : glibc-langpack-en-2.28-164.0.1.el8.x86_64 10/11 Cleanup : glibc-common-2.28-164.0.1.el8.x86_64 11/11 Running scriptlet: glibc-common-2.28-164.0.1.el8.x86_64 11/11 Running scriptlet: glibc-common-2.28-164.0.4.el8.x86_64 11/11 Verifying : libnsl-2.28-164.0.4.el8.x86_64 1/11 Verifying : glibc-2.28-164.0.4.el8.x86_64 2/11 Verifying : glibc-2.28-164.0.1.el8.x86_64 3/11 Verifying : glibc-common-2.28-164.0.4.el8.x86_64 4/11 Verifying : glibc-common-2.28-164.0.1.el8.x86_64 5/11 Verifying : glibc-devel-2.28-164.0.4.el8.x86_64 6/11 Verifying : glibc-devel-2.28-164.0.1.el8.x86_64 7/11 Verifying : glibc-headers-2.28-164.0.4.el8.x86_64 8/11 Verifying : glibc-headers-2.28-164.0.1.el8.x86_64 9/11 Verifying : glibc-langpack-en-2.28-164.0.4.el8.x86_64 10/11 Verifying : glibc-langpack-en-2.28-164.0.1.el8.x86_64 11/11 Upgraded: glibc-2.28-164.0.4.el8.x86_64 glibc-common-2.28-164.0.4.el8.x86_64 glibc-devel-2.28-164.0.4.el8.x86_64 glibc-headers-2.28-164.0.4.el8.x86_64 glibc-langpack-en-2.28-164.0.4.el8.x86_64 Installed: libnsl-2.28-164.0.4.el8.x86_64 Complete! [root /home/opc/minecraft-bedrock-server]#
ガチャガチャとダウンロード&インストールが実施され、最後に「Complete!」と表示されればOKです。
再度「LD_LIBRARY_PATH=. ./bedrock_server」を実行してみましょう。
[root /home/opc/minecraft-bedrock-server]#LD_LIBRARY_PATH=. ./bedrock_server NO LOG FILE! - setting up server logging... [2022-03-05 12:58:21:750 INFO] Starting Server [2022-03-05 12:58:21:750 INFO] Version 1.18.12.01 [2022-03-05 12:58:21:750 INFO] Session ID ***** [2022-03-05 12:58:21:753 INFO] Level Name: Bedrock level [2022-03-05 12:58:21:758 INFO] Game mode: 0 Survival [2022-03-05 12:58:21:759 INFO] Difficulty: 1 EASY [2022-03-05 12:58:21:033 INFO] opening worlds/Bedrock level/db [2022-03-05 12:58:24:339 INFO] IPv4 supported, port: 19132 [2022-03-05 12:58:24:339 INFO] IPv6 supported, port: 19133 [2022-03-05 12:58:25:306 INFO] Server started. [2022-03-05 12:58:25:347 INFO] IPv4 supported, port: 56987 [2022-03-05 12:58:25:347 INFO] IPv6 supported, port: 50675
おぉ!?
なにやら出てきました。
このように出てくれば、Minecraftサーバが起動しているという事らしいです!
よくわかりませんが、統合版(Bedrock)で…サバイバルで…イージーで…ポート19132を使ってて…という感じなのがわかります。
これは「Ctrl+C」で、強制終了させるまで稼働し続けるので、
このTeraterm画面は残しておいて、一旦新しくTeratermでログインし直します。
で、こちらで改めて「netstat -anu | grep 19132」を打ってみると…
[root /home/opc]#netstat -anu | grep 19132
udp 0 0 0.0.0.0:19132 0.0.0.0:*
[root /home/opc]#
1行だけ出てきましたね。
ゼロがたくさんありますが、簡単にいうと、19132番ポートで、UDPのアクセスを待ってるよ。全世界から。
となります。
そして、その通信は、Minecraftサーバが受け付けて処理をしてくれると。
では続けてこちらも確認します
ps -aefl | grep bedrock_server | grep -v grep
[root /home/opc]#ps -aefl | grep bedrock_server | grep -v grep 4 S root 925827 910532 5 80 0 - 242816 hrtime 13:07 pts/1 00:00:01 ./bedrock_server [root /home/opc]#
なにか表示されましたね。「表示される=起動している」とだけわかっていればOKです。
これで無事起動完了!ではあるのですが、
このままパソコンを閉じると、Teratermから仮想マシンへのアクセスが切れてしまって
そうなると、Minecraftサーバも落ちてしまうんですよね…
なので、そうならないように、一工夫入れたいと思います。
まずは、今稼働しているMinecraftサーバを落とします。
pkill bedrock_server
[root /home/opc]#pkill bedrock_server
[root /home/opc]#
これが落とすコマンドです。
結果は何も表示されていませんよね。
では、Minecraftサーバを起動していた方のTeratermを見てみましょう。
はい。「Terminated」と表示され、プロンプトが戻ってますよね。
Terminatedは終了した。という意味です。
先ほどの「pkill bedrock_server」を打ったことで、終了したのです。
ここまで確認出来たら、今度は以下のコマンドで、起動してみます。
LD_LIBRARY_PATH=. nohup ./bedrock_server >> ./bedrock_server.log 2>&1 &
今度は1行だけ表示されて、すぐにプロンプトが出てきました。
落ちたのか?いいえ違います。
このコマンドだと、起動したものがTeratermの画面上から切り離されて、仮想マシン上で生き続けるという動作になります。
つまり、Teratermを終了しても、Windowsを終了しても、Minecraftサーバが起動し続けるという事になります。
実際に起動しているか、再度確認してみましょう。
netstat -anu | grep 19132
ps -aefl | grep bedrock_server | grep -v grep
[root /home/opc/minecraft-bedrock-server]#netstat -anu | grep 19132 udp 0 0 0.0.0.0:19132 0.0.0.0:* [root /home/opc/minecraft-bedrock-server]#ps -aefl | grep bedrock_server | grep -v grep 4 R root 937929 910532 1 80 0 - 226432 - 14:04 pts/1 00:00:02 ./bedrock_server [root /home/opc/minecraft-bedrock-server]#
無事起動できているようです。
この後、Teratermを終了し、再度ログインし直しましたが、起動しっぱなしであることが確認できました。
マイクラサーバ起動完了!!!
次回は…Nintendo Switch側からアクセスを試みます。
最後までお読みいただきありがとうございました。
気になることがあったら、コメント頂けると嬉しいです。
自主学習も兼ねて記事にするかもしれません。