はじめに
このブログ(LIFEWORK Blog)の中でも、
UbuntuでMinecraftサーバーを作って運用する方法を紹介していますが、
Ubuntuを再起動やシャットダウンするたびに、
手動でサーバーを起動する必要があるのは、結構面倒くさいですよね。
一時的に遊ぶだけなら問題ありませんが、
家族や友人と共有しているサーバーの場合、
- 再起動後にサーバーが立ち上がっていない
- 起動し忘れて「入れない」と言われる
- 外出先から起動できず困る
といったことが起こりがちです。
この記事では、Ubuntu上で動かしているMinecraftサーバーを、
Ubuntu起動時に自動で立ち上がるように設定する方法を、
初心者の方にもわかるように解説します。
すでにUbuntu上にMinecraftサーバーを設置済みで、
手動で起動できている状態を前提に、systemd を使ったシンプルで安定した自動起動設定を紹介します。
Linuxのコマンドやsystemdのことはわからなくても、
「コマンドをコピペすれば再現できる」ように書いていきますので、
参考にしていただければ嬉しいです。
今回の構成と前提条件
この記事では、Ubuntu上で動かしている Minecraft Java版サーバーを、Ubuntuの起動時に自動で立ち上げる設定方法を紹介します。作業に入る前に、この記事で想定している構成と前提条件を整理しておきます。
想定している環境
本記事では、Ubuntu(デスクトップ版・サーバー版のどちらでも可)上に、Java版のMinecraftサーバーがすでにインストールされており、手動で起動できる状態であることを前提としています。
Minecraftサーバーの新規構築方法や、Javaのインストール手順については解説しません。
使用する仕組みについて
Ubuntuには、systemd というサービス管理の仕組みがあります。今回はこの systemd を使って、Ubuntu起動時にMinecraftサーバーを自動で起動する設定を行います。
仕組みそのものを詳しく理解する必要はありませんが、設定ファイルを1つ作成し、決められたコマンドを実行する作業が発生します。
この記事でやらないこと
この記事では、次のような内容は扱いません。
- Minecraftサーバーのインストール手順
- Javaのバージョン選択や詳細なチューニング
- MODサーバーや複雑な構成の解説
- Ubuntuのコマンドの意味や仕組みに関する詳細な解説
あくまで、「すでに動いているMinecraftサーバーを、Ubuntu起動時に自動起動させる」ことに焦点を当てています。
Minecraftサーバーの起動コマンドを確認する
自動起動の設定を行う前に、まずは Minecraftサーバーを手動で起動しているときのコマンド を確認しておきます。
このコマンドが、そのまま自動起動するコマンドになります。
この記事では、Ubuntu上で動いている Minecraftサーバーが、すでに手動で起動できていることを前提にしています。
そのため、ここでは新しいコマンドを考えるのではなく、普段使っている起動方法を確認することが目的です。
普段どのように起動しているかを確認する
まず、Minecraftサーバーを配置しているディレクトリに移動します。
たとえば、ホームディレクトリ直下に minecraft フォルダを作っている場合は、次のようになります。
cd ~/minecraft
次に、普段どのコマンドでサーバーを起動しているかを確認します。
多くの場合、次のようなコマンドを実行しているはずです。
java -Xms2G -Xmx4G -jar server.jar nogui
このコマンドが、自動起動設定でもそのまま使う起動コマンドになります。
起動コマンドの意味をざっくり確認する
ここでは詳細な解説は行いませんが、設定内容を把握しやすくするために、最低限の意味だけ整理しておきます。
java
Minecraftサーバーを起動するためのJavaコマンドです。-Xms2G
Java起動時に最初から確保するメモリ量を指定しています。-Xmx4G
Javaが使用できる最大メモリ量を指定しています。-jar server.jar
実行するMinecraftサーバーのJarファイルを指定しています。nogui
GUIを使わず、ターミナル上で動作させる指定です。
※ ここでは「意味を理解すること」よりも、「このコマンドをそのまま使う」ことが重要です。
起動できることを必ず確認する
次のコマンドを実行し、Minecraftサーバーが正常に起動することを確認してください。
java -Xms2G -Xmx4G -jar server.jar nogui
ログが流れ始め、エラーが表示されずに起動すれば問題ありません。
この状態が確認できれば、自動起動設定に進む準備は整っています。
systemd 用のサービスファイルを作成する
ここから、Minecraftサーバーを自動起動させるための設定を行います。
Ubuntuでは、systemd という仕組みを使って、OS起動時に特定のプログラムを自動実行できます。
ここでは、Minecraftサーバー専用のサービスファイルを1つ作成するだけです。
内容はシンプルなので、落ち着いて進めていきましょう。
サービスファイルを作成する
まず、systemd が読み込むサービスファイルを作成します。
次のコマンドを実行してください。
sudo nano /etc/systemd/system/minecraft.service
これにより、minecraft.service という設定ファイルを新規作成(または編集)します。
サービスファイルの内容
エディタが開いたら、次の内容をそのまま貼り付けます。
※ ユーザー名やディレクトリ名は、ご自身の環境に合わせて後で確認します。
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/minecraft
ExecStart=/usr/bin/java -Xms2G -Xmx4G -jar server.jar nogui
Restart=always
[Install]
WantedBy=multi-user.target
各項目の役割を簡単に確認する
ここでは細かい仕組みの説明は行いませんが、どこを自分の環境に合わせればよいかだけ把握しておきます。
User
Minecraftサーバーを実行するユーザー名です。
普段サーバーを起動しているユーザー名に合わせてください。WorkingDirectory
Minecraftサーバー(server.jar)が置かれているディレクトリです。ExecStart
第3章で確認した 自動起動するコマンド を指定します。
Javaのパスやメモリ設定が異なる場合は、ここを修正します。
ファイルを保存して閉じる
nano エディタの場合は、次の操作で保存します。
Ctrl + O→ Enter(保存)Ctrl + X(終了)
設定を systemd に反映する
サービスファイルを作成しただけでは、まだ systemd に認識されていません。
次のコマンドを実行して、設定を反映させます。
sudo systemctl daemon-reload
このコマンドは、「新しいサービスファイルが追加されたことを systemd に知らせる」ためのものです。
Minecraftサーバーを自動起動として有効化・動作確認する
ここまででサービスファイルの作成と設定の反映が完了しています。
ここでは、そのサービスを自動起動として有効化し、実際に正しく動作するかを確認していきます。
サービスを有効化する
まず、Minecraftサーバーのサービスを自動起動として有効化します。
次のコマンドを実行してください。
sudo systemctl enable minecraft
この操作により、Ubuntu起動時に Minecraft サーバーが自動で起動するようになります。
サービスを起動する
次に、一度サービスを起動してみましょう。
sudo systemctl start minecraft
エラーが表示されず、コマンド入力状態に戻れば、起動処理は正常に受け付けられています。
サービスの状態を確認する
起動状態を確認するため、次のコマンドを実行します。
systemctl status minecraft
表示結果に active (running) と表示されており、エラー(failed など)が出ていなければ問題ありません。
ここでエラーが表示される場合は、User、WorkingDirectory、ExecStart の設定を見直してください。
手動で停止・再起動してみる
自動起動を確認する前に、手動操作でも正しく制御できるかを確認しておくと安心です。
sudo systemctl stop minecraft
sudo systemctl start minecraft
起動後に再度 systemctl status minecraft を実行し、 active (running) になることを確認してください。
Ubuntu再起動後の自動起動を確認する
最後に、Ubuntuを再起動して自動起動が正しく動作するかを確認します。
sudo reboot
再起動後にログインしたら、次のコマンドを実行します。
systemctl status minecraft
Ubuntu起動直後でも Minecraft サーバーが起動していれば、自動起動の設定は正常に完了しています。
まとめ
この記事では、Ubuntu上で動いているMinecraftサーバーを、Ubuntu起動時に自動で立ち上がるように設定する方法を紹介しました。
systemd を使うことで、サーバーを手動で起動する手間がなくなり、Ubuntuを再起動しても自動的にMinecraftサーバーが起動する環境を作ることができます。
今回の方法では、screen などの追加ツールを使わず、systemd だけで自動起動を実現しているため、構成がシンプルで安定している点も特徴です。
コマンドや設定ファイルの内容をすべて理解していなくても、コマンドをコピペしながら進めることで、同じ環境を再現できるようにしています。
まずはこの構成で自動起動を設定し、慣れてきたら、専用ユーザーの作成や start.sh を使った構成、ログ管理の工夫などにステップアップしていくのもよいと思います。
UbuntuとMinecraftサーバーは、少しずつ仕組みを理解しながら改善していけるのが魅力です。
この記事が、Minecraftサーバーを安定して運用するための一助になれば嬉しいです。
