経済サバイバルサーバー、参加者募集中

2026.08.02

【初心者向け】マイクラサーバーを再起動する方法!手動・自動の両方を解説

マイクラサーバーを安全に手動再起動し自動再起動を設定する方法
  • マイクラサーバーをどうやって再起動すればいいかわからない
  • 強制終了やウィンドウを閉じる方法でデータが消えてしまわないか心配
  • 毎回手動で再起動するのが面倒で、自動化する方法を知りたい

コマンドの名前も場所もわからないと、どこに何を入力するのかという前の段階で止まりやすいです。

基本はstopコマンドで停止してから起動し直すだけで、画面を閉じたり強制終了するとワールドデータが保存されないまま消えることがあります。

この記事で説明する内容は次の2つです。

  • stopコマンドによる手動での安全な再起動手順
  • cronを使った定期自動再起動の設定方法

読み終わるころには、手動でも自動でも安全に再起動できるようになります。

管理人spaのアイコン
spaこの記事を書いた人

サーバーの構築と運用を繰り返して4年。その経験をもとに記事80本以上を執筆。

なぜマイクラサーバーに再起動が必要なのか

マイクラサーバーに再起動が必要になる場面は主に2つあります。

  • プラグインやMODの設定変更を反映させるため
  • サーバーの安定性を保つため

プラグインやMODの設定変更を反映させるため

新しいプラグインを追加した場合や、設定ファイルを変更した場合は、基本的に再起動が必要です。

たとえば、以下のような変更を反映させるのに必要になります。

  • サーバー設定(server.properties)の変更
  • 新しいプラグインのインストール
spa

リロードで済ませようとしたら読み込みが壊れ、結局再起動で直りました…。

サーバーの安定性を保つため

長時間稼働し続けると、メモリが少しずつ増えてサーバーが重くなることがあります。

1日1回など定期的に再起動すれば、この状態を一時的にリセットできます。

ただし、定期再起動はTPS低下やメモリ増加そのものの原因を直すわけではありません。継続して重くなる場合は、原因になっているプラグインやMOD、メモリ設定を先に調べます。

マイクラサーバーが重い原因をTPS、メモリ、プラグイン、描画距離で診断する流れ

【マイクラ】鯖落ちする原因と直し方!サーバーが重い・落ちるときの診断

手動でマイクラサーバーを再起動する基本の方法

マイクラサーバーの安全な再起動フロー。告知、保存、stop、起動、接続確認の順番で進める手順を示している

まずは、マイクラサーバーを手動で再起動する方法を2つ紹介します。

  • stopコマンドでサーバーを安全に停止させる
  • Spigot/Paperのrestartコマンドで自動再起動する

stopコマンドでサーバーを安全に停止させる

一番シンプルなのは、stopコマンドを使う方法です。

ゲーム内のチャット欄では/stop、サーバーのコンソール画面ではスラッシュを付けずにstopと入力します。

# ゲーム内チャット欄
/stop
# サーバーコンソール
stop

このコマンドで停止すると、ワールドデータが保存されてからサーバーが落ちる仕組みです。

初心者

シャットダウンって言葉がちょっと怖いけど、データはちゃんと保存されるんですね!

マイクラサーバーのバックアップ復元を示すサムネイル

【マイクラ】サーバーのバックアップ方法!復元・自動化・保存先まで初心者向けに解説

コンソールのログに停止完了の表示が出て、プロンプトへ戻ったことを確認してから、次の起動コマンドを実行します。

サーバーが完全に終了する前に次のプロセスを起動すると、同じワールドフォルダへ二重にアクセスしてデータが壊れることがあるため、必ず終了を確認してから次へ進みましょう。

Terminal window
java -Xms4G -Xmx4G -jar server.jar nogui

メモリの割り当て量と.jarファイルの名前は、使っている環境に合わせて変更します。

Spigot/Paperで自動再起動を設定する

SpigotやPaperMCには/restartコマンドが標準で用意されています。

まず、サーバーフォルダにstart.sh(Linux用)またはstart.bat(Windows用)という起動スクリプトを作成します。

中身は次のとおりです。

start.sh
#!/bin/bash
java -Xms4G -Xmx4G -jar server.jar nogui

Linux用(start.sh)とWindows用(start.bat)で内容が異なるので、環境に合ったほうを使います。

start.bat
@echo off
java -Xms4G -Xmx4G -jar server.jar nogui
pause

メモリの割り当て量と.jarファイルの名前は、あなたのサーバーの環境に合わせて調整しておきましょう。

Linuxでは実行権限を付ける必要があります。

Terminal window
chmod +x start.sh

spigot.ymlの設定もあわせて確認しておくと安心です。

settings:
restart-script: ./start.sh

ここまでの設定が終われば、ゲーム内またはコンソールで次のコマンドを実行するとサーバーが停止・再起動します。

/restart

プレイヤーには「Server is restarting」と表示され、一時的にキックされますが、再起動後にはまた接続できます。

PaperMCのメリットと導入方法を高速・軽量化とプラグイン対応で示すサムネイル

マイクラサーバーのPaperMCとは?Spigotとの違い・メリットや導入方法を解説

screencronを組み合わせた定期再起動

毎日同じ時間に再起動したいなら、screenとcronを組み合わせると、手動で止め忘れてメモリ使用量が増え続ける状態を減らせます。

初心者

screenとかcronとか聞き慣れないんですけど…難しくないですか?

spa

スクリプトを1つ置いてcronに1行追加するだけなので、意外とすぐ終わりますよ!

補足

screenはバックグラウンドでセッションを維持するツール、cronは定時にコマンドを自動実行する仕組みです。

毎日決まった時間に自動再起動させる設定方法

まず、再起動用のシェルスクリプトを作成します。

/usr/local/bin/mc-restart.shなどに、以下のスクリプトを置いてください。

#!/bin/bash
SCREEN_NAME=Minecraft
MAX_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=0
while screen -list | grep -q "$SCREEN_NAME"; do
sleep 5
waited=$((waited + 5))
if [ "$waited" -ge "$MAX_WAIT" ]; then
echo "サーバーが${MAX_WAIT}秒以内に停止しませんでした。ログを確認してください。" >&2
exit 1
fi
done
cd /opt/minecraft
screen -dmS "$SCREEN_NAME" java -Xms4G -Xmx4G -jar server.jar nogui

固定の待機時間だけで次のプロセスを起動すると、保存や停止処理が終わらないまま二重起動になる可能性があります。

上のスクリプトは、screenセッションの終了を確認できるまでループし、一定時間を超えたら起動せずにエラー終了する仕組みです。

実行権限を付けます。

Terminal window
chmod +x /usr/local/bin/mc-restart.sh

続いて、cronで定期実行を設定します。

cronの設定ファイルを開きましょう。

Terminal window
crontab -e

例えば、毎日午前4時55分に再起動する場合にはこうします。

Terminal window
55 4 * * * /usr/local/bin/mc-restart.sh

これで毎日自動的に再起動されるようになります。

spa

プレイヤーがいる時間に再起動すると怒られるので、深夜狙いが無難です!

定期再起動を入れるなら、再起動前にバックアップも残る形にしておくと戻しやすいです。

マイクラサーバーの自動バックアップとcron対応を示すサムネイル

マイクラサーバーの自動バックアップ方法!cron・プラグイン・Windows対応

事前に警告メッセージでプレイヤーに通知する

上のスクリプトでは、再起動10秒前に警告メッセージを送っていますが、あなたがもっと丁寧に通知したい場合は通知の間隔だけを長くできます。

#!/bin/bash
SCREEN_NAME=Minecraft
MAX_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=0
while screen -list | grep -q "$SCREEN_NAME"; do
sleep 5
waited=$((waited + 5))
if [ "$waited" -ge "$MAX_WAIT" ]; then
echo "サーバーが${MAX_WAIT}秒以内に停止しませんでした。ログを確認してください。" >&2
exit 1
fi
done
cd /opt/minecraft
screen -dmS "$SCREEN_NAME" java -Xms4G -Xmx4G -jar server.jar nogui

停止コマンドを送るだけで終わるスクリプトは、サーバーが止まったまま起動しない状態になるため、必ず停止確認と起動処理までを1つのスクリプトに含めることが前提です。

プレイヤーの作業中断を避けたい場合は、通知時間を長くしたこちらを使います。

Docker Composeで動かしている場合

Docker Compose(コンテナ管理ツール)でマイクラサーバーを動かしている場合は、再起動のコマンドが変わります。

Terminal window
docker compose restart

docker 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/bash
cd /opt/minecraft
docker compose restart

/usr/local/bin/dc-restart.sh などに保存したら、実行権限を付ける作業も忘れずに行いましょう。

Terminal window
chmod +x /usr/local/bin/dc-restart.sh

あとはscreen+cronのセクションと同じように、cronに登録すれば定期再起動できます。

Terminal window
55 4 * * * /usr/local/bin/dc-restart.sh
Docker Composeでマイクラサーバーを一発起動するサムネイル

【コピペOK】Docker Composeでマイクラサーバーを一発で立てる方法

まとめ:停止を確認してから起動する

基本はコンソールでstop(ゲーム内は/stop)を送って停止→終了を確認→起動コマンドで立ち上げです。

画面を閉じるだけで落とすと、ワールドデータが保存されていないことがあります。

定期再起動はscreenとcronを組み合わせ、固定の待機時間ではなくプロセス・セッションの終了確認を挟んで設定できるのが特徴です。

毎日1回再起動を入れておくと、メモリ増加によるラグを一時的にリセットできますが、症状が続く場合は原因調査を先に行います。

spa

リロードより再起動のほうが手戻りが少なく、定期再起動で安定感も違いますよ!