EC2インスタンスでMinecraftサーバーを自動起動する設定
このガイドでは、Ubuntu環境でEC2インスタンスの起動時にMinecraftサーバーを自動的に起動するように設定する手順を説明します。systemd
を使用して、このプロセスを実現します。
手順概要
- Minecraftサーバー起動スクリプトの作成
- スクリプトの実行権限を設定
systemd
サービスユニットファイルの作成systemd
サービスの有効化と起動- サービスの確認
ステップ 1: Minecraftサーバー起動スクリプトの作成
まず、Minecraftサーバーを起動するためのシェルスクリプトを作成します。
sudo vim /home/ubuntu/start_minecraft_server.sh
以下の内容をスクリプトに書き込みます。
#!/bin/bash
cd /home/ubuntu/minecraft/bedrock-server
LD_LIBRARY_PATH=. ./bedrock_server
ファイルを保存して終了します。vim
では、Esc
キーを押してコマンドモードに入り、:wq
と入力して保存します。
ステップ 2: スクリプトの実行権限を設定
スクリプトに実行権限を付与します。
sudo chmod +x /home/ubuntu/start_minecraft_server.sh
ステップ 3: systemd
サービスユニットファイルの作成
systemd
サービスを定義するユニットファイルを作成します。
sudo vim /etc/systemd/system/minecraft.service
以下の内容をユニットファイルに書き込みます。
[Unit]
Description=Minecraft Bedrock Server
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/minecraft/bedrock-server
ExecStart=/home/ubuntu/start_minecraft_server.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
ファイルを保存して終了します。vim
では、Esc
キーを押してコマンドモードに入り、:wq
と入力して保存します。
ステップ 4: systemd
サービスの有効化と起動
作成したサービスをシステム起動時に自動的に実行されるように設定します。
デーモンをリロード
ユニットファイルの変更を反映するために、systemd
デーモンをリロードします。
sudo systemctl daemon-reload
サービスを有効化
インスタンス起動時にサービスが自動的に起動するようにします。
sudo systemctl enable minecraft.service
サービスを起動
サービスを手動で起動します。
sudo systemctl start minecraft.service
ステップ 5: サービスの確認
サービスが正しく起動しているか確認します。
sudo systemctl status minecraft.service
-
Active: active (running)
と表示されていれば、サービスは正常に起動しています。
ログの確認
サービスに関する詳細なログを確認します。
journalctl -u minecraft.service -b
注意点
- パスと権限の確認: スクリプトのパスやファイルの権限が正しいかどうかを確認してください。
-
ユーザーの確認: ユニットファイルの
User=ubuntu
の部分は、サーバーを実行するユーザー名に合わせて調整してください。
これでEC2インスタンスが起動するたびにMinecraftサーバーが自動的に起動するようになります。