【マイクラ】鯖落ちする原因と直し方!サーバーが重い・落ちるときの診断
2026.08.02
【初心者向け】マイクラサーバーを再起動する方法!手動・自動の両方を解説

- マイクラサーバーをどうやって再起動すればいいかわからない
- 強制終了やウィンドウを閉じる方法でデータが消えてしまわないか心配
- 毎回手動で再起動するのが面倒で、自動化する方法を知りたい
コマンドの名前も場所もわからないと、どこに何を入力するのかという前の段階で止まりやすいです。
基本はstopコマンドで停止してから起動し直すだけで、画面を閉じたり強制終了するとワールドデータが保存されないまま消えることがあります。
この記事で説明する内容は次の2つです。
stopコマンドによる手動での安全な再起動手順- cronを使った定期自動再起動の設定方法
読み終わるころには、手動でも自動でも安全に再起動できるようになります。
なぜマイクラサーバーに再起動が必要なのか
マイクラサーバーに再起動が必要になる場面は主に2つあります。
- プラグインやMODの設定変更を反映させるため
- サーバーの安定性を保つため
プラグインやMODの設定変更を反映させるため
新しいプラグインを追加した場合や、設定ファイルを変更した場合は、基本的に再起動が必要です。
たとえば、以下のような変更を反映させるのに必要になります。
- サーバー設定(server.properties)の変更
- 新しいプラグインのインストール
リロードで済ませようとしたら読み込みが壊れ、結局再起動で直りました…。
サーバーの安定性を保つため
長時間稼働し続けると、メモリが少しずつ増えてサーバーが重くなることがあります。
1日1回など定期的に再起動すれば、この状態を一時的にリセットできます。
ただし、定期再起動はTPS低下やメモリ増加そのものの原因を直すわけではありません。継続して重くなる場合は、原因になっているプラグインやMOD、メモリ設定を先に調べます。
手動でマイクラサーバーを再起動する基本の方法

まずは、マイクラサーバーを手動で再起動する方法を2つ紹介します。
- stopコマンドでサーバーを安全に停止させる
- Spigot/Paperのrestartコマンドで自動再起動する
stopコマンドでサーバーを安全に停止させる
一番シンプルなのは、stopコマンドを使う方法です。
ゲーム内のチャット欄では/stop、サーバーのコンソール画面ではスラッシュを付けずにstopと入力します。
# ゲーム内チャット欄/stop
# サーバーコンソールstopこのコマンドで停止すると、ワールドデータが保存されてからサーバーが落ちる仕組みです。
シャットダウンって言葉がちょっと怖いけど、データはちゃんと保存されるんですね!
コンソールのログに停止完了の表示が出て、プロンプトへ戻ったことを確認してから、次の起動コマンドを実行します。
サーバーが完全に終了する前に次のプロセスを起動すると、同じワールドフォルダへ二重にアクセスしてデータが壊れることがあるため、必ず終了を確認してから次へ進みましょう。
java -Xms4G -Xmx4G -jar server.jar noguiメモリの割り当て量と.jarファイルの名前は、使っている環境に合わせて変更します。
Spigot/Paperで自動再起動を設定する
SpigotやPaperMCには/restartコマンドが標準で用意されています。
まず、サーバーフォルダにstart.sh(Linux用)またはstart.bat(Windows用)という起動スクリプトを作成します。
中身は次のとおりです。
#!/bin/bashjava -Xms4G -Xmx4G -jar server.jar noguiLinux用(start.sh)とWindows用(start.bat)で内容が異なるので、環境に合ったほうを使います。
@echo offjava -Xms4G -Xmx4G -jar server.jar noguipauseメモリの割り当て量と.jarファイルの名前は、あなたのサーバーの環境に合わせて調整しておきましょう。
Linuxでは実行権限を付ける必要があります。
chmod +x start.shspigot.ymlの設定もあわせて確認しておくと安心です。
settings: restart-script: ./start.shここまでの設定が終われば、ゲーム内またはコンソールで次のコマンドを実行するとサーバーが停止・再起動します。
/restartプレイヤーには「Server is restarting」と表示され、一時的にキックされますが、再起動後にはまた接続できます。
screenとcronを組み合わせた定期再起動
毎日同じ時間に再起動したいなら、screenとcronを組み合わせると、手動で止め忘れてメモリ使用量が増え続ける状態を減らせます。
screenとかcronとか聞き慣れないんですけど…難しくないですか?
スクリプトを1つ置いてcronに1行追加するだけなので、意外とすぐ終わりますよ!
補足
screenはバックグラウンドでセッションを維持するツール、cronは定時にコマンドを自動実行する仕組みです。
毎日決まった時間に自動再起動させる設定方法
まず、再起動用のシェルスクリプトを作成します。
/usr/local/bin/mc-restart.shなどに、以下のスクリプトを置いてください。
#!/bin/bashSCREEN_NAME=MinecraftMAX_WAIT=120
# プレイヤーに事前通知screen -S "$SCREEN_NAME" -p 0 -X stuff "say サーバーを再起動します\015"sleep 10
# サーバー停止screen -S "$SCREEN_NAME" -p 0 -X stuff "stop\015"
# screenセッションが終了するまで確認し、終了しなければ起動せず中断するwaited=0while screen -list | grep -q "$SCREEN_NAME"; do sleep 5 waited=$((waited + 5)) if [ "$waited" -ge "$MAX_WAIT" ]; then echo "サーバーが${MAX_WAIT}秒以内に停止しませんでした。ログを確認してください。" >&2 exit 1 fidone
cd /opt/minecraftscreen -dmS "$SCREEN_NAME" java -Xms4G -Xmx4G -jar server.jar nogui固定の待機時間だけで次のプロセスを起動すると、保存や停止処理が終わらないまま二重起動になる可能性があります。
上のスクリプトは、screenセッションの終了を確認できるまでループし、一定時間を超えたら起動せずにエラー終了する仕組みです。
実行権限を付けます。
chmod +x /usr/local/bin/mc-restart.sh続いて、cronで定期実行を設定します。
cronの設定ファイルを開きましょう。
crontab -e例えば、毎日午前4時55分に再起動する場合にはこうします。
55 4 * * * /usr/local/bin/mc-restart.shこれで毎日自動的に再起動されるようになります。
プレイヤーがいる時間に再起動すると怒られるので、深夜狙いが無難です!
定期再起動を入れるなら、再起動前にバックアップも残る形にしておくと戻しやすいです。
事前に警告メッセージでプレイヤーに通知する
上のスクリプトでは、再起動10秒前に警告メッセージを送っていますが、あなたがもっと丁寧に通知したい場合は通知の間隔だけを長くできます。
#!/bin/bashSCREEN_NAME=MinecraftMAX_WAIT=120
# 15分前通知screen -S "$SCREEN_NAME" -p 0 -X stuff "say 15分後にサーバーを再起動します\015"sleep 900 # 15分待機
# 5分前通知screen -S "$SCREEN_NAME" -p 0 -X stuff "say 5分後にサーバーを再起動します\015"sleep 300 # 5分待機
# 1分前通知screen -S "$SCREEN_NAME" -p 0 -X stuff "say 1分後にサーバーを再起動します\015"sleep 60 # 1分待機
# サーバー停止screen -S "$SCREEN_NAME" -p 0 -X stuff "stop\015"
# screenセッションが終了するまで確認し、終了しなければ起動せず中断するwaited=0while screen -list | grep -q "$SCREEN_NAME"; do sleep 5 waited=$((waited + 5)) if [ "$waited" -ge "$MAX_WAIT" ]; then echo "サーバーが${MAX_WAIT}秒以内に停止しませんでした。ログを確認してください。" >&2 exit 1 fidone
cd /opt/minecraftscreen -dmS "$SCREEN_NAME" java -Xms4G -Xmx4G -jar server.jar nogui停止コマンドを送るだけで終わるスクリプトは、サーバーが止まったまま起動しない状態になるため、必ず停止確認と起動処理までを1つのスクリプトに含めることが前提です。
プレイヤーの作業中断を避けたい場合は、通知時間を長くしたこちらを使います。
Docker Composeで動かしている場合
Docker Compose(コンテナ管理ツール)でマイクラサーバーを動かしている場合は、再起動のコマンドが変わります。
docker compose restartdocker compose restartはコンテナへSIGTERMを送って停止し、その後に再起動します。Docker公式のCompose仕様によると、コンテナがSIGTERMを処理しない場合に備えてstop_grace_periodという猶予時間があり、既定値は10秒でこの時間を過ぎるとSIGKILLで強制終了されます。
マイクラサーバーの保存・停止処理が10秒で終わらないイメージ構成では、猶予時間を延ばしておくのが安全です。
services: minecraft: stop_grace_period: 60s使っているイメージがSIGTERMを受けてstop相当の安全な保存・終了処理を行うかどうかは、イメージ側のドキュメントで確認します。SIGTERMをそのまま無視したり即終了したりするイメージでは、docker compose restartだけでは安全に保存されません。
また、docker-compose.ymlに restart: unless-stopped を書いておくと、コンテナが予期せず落ちたときに自動で再起動してくれます。ただし、これは明示的に停止した場合まで必ず元へ戻す設定ではありません。
定期的な再起動をスケジュールするなら、ホスト側のcronと組み合わせて、再起動用のスクリプトを作ります。
#!/bin/bashcd /opt/minecraftdocker compose restart/usr/local/bin/dc-restart.sh などに保存したら、実行権限を付ける作業も忘れずに行いましょう。
chmod +x /usr/local/bin/dc-restart.shあとはscreen+cronのセクションと同じように、cronに登録すれば定期再起動できます。
55 4 * * * /usr/local/bin/dc-restart.shまとめ:停止を確認してから起動する
基本はコンソールでstop(ゲーム内は/stop)を送って停止→終了を確認→起動コマンドで立ち上げです。
画面を閉じるだけで落とすと、ワールドデータが保存されていないことがあります。
定期再起動はscreenとcronを組み合わせ、固定の待機時間ではなくプロセス・セッションの終了確認を挟んで設定できるのが特徴です。
毎日1回再起動を入れておくと、メモリ増加によるラグを一時的にリセットできますが、症状が続く場合は原因調査を先に行います。
リロードより再起動のほうが手戻りが少なく、定期再起動で安定感も違いますよ!












