【2025年最新】マイクラサーバー再起動の自動化完全ガイド – systemdとscreen監視でWatchdog機能も実現

【2025年最新】マイクラサーバー再起動の自動化完全ガイド - systemdとscreen監視でWatchdog機能も実現

マイクラサーバー管理画面 引用元: Matsubo Tech Blog

はじめに

マイクラサーバーを運営していると、「サーバーが落ちてしまった時に自動で再起動してほしい」と思ったことはありませんか?本記事では、systemdサービスとscreen監視を使った自動再起動システムの構築方法を詳しく解説します。

2025年現在、マイクラサーバーの安定運用には自動化が必須です。手動でサーバーを再起動するのは非効率的で、特に深夜や外出中にサーバーが停止してしまうと対応できません。

systemdによる自動起動の基本設定

マイクラサーバー設定画面 

引用元: XServer GAMEs

systemdサービスファイルの作成

まず、/etc/systemd/system/minecraft.serviceにサービスファイルを作成します:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
Type=forking
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/screen -dmS minecraft java -Xmx4G -Xms1G -jar server.jar nogui
ExecReload=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "reload"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "save-all"\\015'
ExecStop=/usr/bin/screen -p 0 -S minecraft -X eval 'stuff "stop"\\015'
ExecStop=/bin/sleep 5
RemainAfterExit=yes
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target

サービスの有効化と起動

Copy# サービスファイルを読み込み
sudo systemctl daemon-reload

# サービスを有効化(自動起動設定)
sudo systemctl enable minecraft

# サービスを開始
sudo systemctl start minecraft

# ステータス確認
sudo systemctl status minecraft

screen監視による高度な監視システム

Watchdog機能の実装

より高度な監視を行う場合は、独自のWatchdogスクリプトを作成できます:

Copy#!/bin/bash
# /opt/minecraft/watchdog.sh

SCREEN_NAME="minecraft"
SERVER_DIR="/opt/minecraft"
JAR_FILE="server.jar"

while true; do
    if ! screen -list | grep -q "$SCREEN_NAME"; then
        echo "$(date): Minecraft server not running, starting..."
        cd $SERVER_DIR
        screen -dmS $SCREEN_NAME java -Xmx4G -Xms1G -jar $JAR_FILE nogui
    fi
    sleep 30
done

cronによる定期チェック

cronを使用してサーバーの状態を定期的にチェックすることも可能です:

Copy# crontabに追加
*/5 * * * * /opt/minecraft/check_server.sh

チェックスクリプトの例

Copy#!/bin/bash
# /opt/minecraft/check_server.sh

if ! pgrep -f "minecraft.*server.jar" > /dev/null; then
    systemctl start minecraft
    echo "$(date): Minecraft server restarted" >> /var/log/minecraft_restart.log
fi

メモリ使用量監視と最適化

メモリ監視画面 引用元: ConoHa for GAME

メモリリーク対策

長時間運用時のメモリリークを防ぐため、定期的な再起動も設定できます:

Copy# 毎日午前4時に再起動
0 4 * * * systemctl restart minecraft

ログ監視とアラート設定

rsyslogによるログ管理

Copy# /etc/rsyslog.d/minecraft.conf
:programname, isequal, "minecraft" /var/log/minecraft.log
& stop

Discord通知の設定

サーバーの状態変化をDiscordに通知するスクリプト:

Copy#!/bin/bash
WEBHOOK_URL="YOUR_DISCORD_WEBHOOK_URL"
MESSAGE="Minecraft server status changed: $1"

curl -H "Content-Type: application/json" \
     -X POST \
     -d "{\"content\":\"$MESSAGE\"}" \
     $WEBHOOK_URL

トラブルシューティング

よくある問題と解決方法

問題原因解決方法
サービスが起動しない権限問題chown minecraft:minecraft /opt/minecraft
自動再起動が効かないRestart設定不備Restart=alwaysを確認
メモリ不足エラーメモリ割り当て不足-Xmx値を調整

セキュリティ考慮事項

ファイアウォール設定

Copy# UFWでポート開放
sudo ufw allow 25565/tcp
sudo ufw enable

定期バックアップ

Copy#!/bin/bash
# 毎時バックアップスクリプト
rsync -av /opt/minecraft/world/ /backup/minecraft/$(date +%Y%m%d_%H%M%S)/

まとめ

systemdとscreen監視を組み合わせることで、マイクラサーバーの安定運用が実現できます。Watchdog機能により、サーバーダウン時の自動復旧も可能になります。

おすすめサーバーサービス比較

マイクラサーバーの自動化には、信頼性の高いVPSサービスの選択が重要です:

サービス名特徴料金目安
XServer VPS高性能CPU・安定性重視月額830円~
ConoHa VPS時間課金・柔軟性月額678円~
さくら VPS老舗・安定運用月額590円~

特にsystemd管理機能が必要な場合は、root権限が使えるVPSサービスを選択しましょう。

免責事項

※本記事は2025年1月時点の情報に基づいて執筆されています。内容の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。

目次