フェイス・ソリューション・テクノロジーズ株式会社 IS 本部 OS ユニットの Saki@猫好き です。AWS 活用していますか?
今回は、前回までに作成した minecraft の Mod サーバーを、「インスタンスを立ち上げたら自動で起動する設定」にしてみます。
はじめに
今回は、サーバーでの作業が主となります。SSH 接続ができる用意をお願いします。
また、現在 Minecraft サーバーを起動させている場合は、一旦、停止させてください。
stop コマンドで停止することができます。
自動起動シェルスクリプトの作成と確認
念のため、現在のカレントディレクトリーをログインユーザーのホームディレクトリーに移動させておきましょう。
$ cd
vim でファイルを作成
vim コマンドでファイルを作成します。
$ vim minecraft_script.sh
シェルスクリプトの内容です。
今後の拡張性を考えて作成しています。このシェルスクリプトをコピーして、ターミナルソフトの画面に貼り付けます。
#!/bin/bash
start() {
cd minecraft
screen -AmdS minecraft sh run.sh
}
stop() {
screen -p 0 -S minecraft -X eval 'stuff "stop"\015'
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
esac
保存して vim を終了させます。
Esc キーを押した後に、:wq を入力し、Enter キーを押します。
シェルスクリプトの動作確認 ~ 起動
minecraft サーバーが起動するか、確認します。
$ sh -x minecraft_script.sh start
しばらく待って、screen が起動しているか確認してみます。
$ screen -ls
実際に minecraft が起動できるか確認します。
起動時に、IP アドレスに間違いがないか確認してください。
ちゃんと繋がった! のに、なぜ夜か! 見づらくてすみません。
シェルスクリプトの動作確認 ~ 停止
minecraft サーバーが停止するか、確認します。
※ゲーム画面はきちんと終了させておきましょう。
$ sh -x minecraft_script.sh stop
しばらく待って、screen が終了しているか確認します。
$ screen -ls
自動起動の設定と確認
自動起動の設定
vim でサービスファイルを作成します。
$ sudo vim /etc/systemd/system/minecraft.service
次の内容を、minecraft.service ファイルに貼り付けます。
[Unit]
Description=Minecraft Server
After=network.target local-fs.target
[Service]
Type=forking
User=ec2-user
WorkingDirectory=/home/ec2-user/
ExecStart=/home/ec2-user/minecraft_script.sh start
ExecStop=/home/ec2-user/minecraft_script.sh stop
[Install]
WantedBy=multi-user.target
起動時にスクリプトが動くように設定します。
$ sudo systemctl enable minecraft.service
パーミッションを変更します。
通常はそのままでも動くと思いますが、念のため、パーミッション(権限)を変更します。
$ chmod 744 minecraft_script.sh
起動確認 ~ EC2 インスタンスの再起動
EC2 コンソール画面から、EC2 インスタンスを再起動してみます。
minecraft ゲームを起動します。
以前は、SSH 接続をして起動させなければいけなかったのですが・・・
ちゃんと繋がった! のに、今度は雨か! 空気を読む子ですみません。
起動確認 ~ EC2 インスタンスの停止 → 起動
まずは、EC2 コンソール画面から、EC2 インスタンスを停止します。
完全に停止したことを確認したら、EC2 インスタンスを開始します。
しばらく待って、minecraft ゲームを起動します。
IP アドレスが変更されていますので、修正をお忘れなく。
残念。まだ雨が降っていました。まぁ、そんなに時間が経っていないからしょうがないか。というか、もう少し時間を空けて接続してみれば良かった。
最後に
いかがでしたでしょうか? これで、SSH 接続を行わなくても、minecraft を遊ぶことができるようになりました。
次回は、サーバーの停め忘れによる課金を防ぐために、自動停止をさせる方法について書きたいと思います。
引き続き、よろしくお願いいたします!
コメント