Minecraft Sunucusunu Otomatik Yeniden Başlatma Rehberi
Minecraft sunucuları uzun süre çalıştığında zamanla bellek kullanımı artar, bazı durumlarda donabilir veya beklenmedik şekilde kapanabilir. Otomatik yeniden başlatma sistemi kurmak; hem düzenli bellek temizliği sağlar hem de sunucunun çökmesi durumunda otomatik kurtarma yapar.
Neden Otomatik Restart?
- Bellek temizliği: Java heap zamanla şişer; düzenli restart bunu sıfırlar.
- Plugin güncellemeleri: Bazı güncelleme değişiklikler restart gerektirir.
- Crash recovery: Sunucu çöktüğünde oyuncular beklemeden geri gelir.
- Tutarlılık: Düzenli restart, öngörülemeyen birikimleri önler.
Yöntem 1: start.sh ile Döngü
Sunucuyu bir while döngüsü içine alın. Sunucu durduğunda döngü yeniden başlatır:
#!/bin/bash
cd /home/minecraft
while true; do
echo "[$(date)] Sunucu başlıyor..."
java -Xms4G -Xmx4G -XX:+UseG1GC -jar paper.jar nogui
# Sunucu durdu (crash veya /stop)
echo "[$(date)] Sunucu durdu. 10 saniye sonra yeniden başlıyor..."
sleep 10
done
Bu script hem crash'ten hem
/stop komutundan sonra yeniden başlatır. Normal kapatma için Ctrl+C veya script'i kill edin.Yöntem 2: systemd Servisi (Önerilen)
# /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Sunucu
After=network.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft
ExecStart=/home/minecraft/start.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
Artık sunucu sistem açılışında otomatik başlar, çökerse 10 saniye içinde yeniden kalkar.
Planlı Yeniden Başlatma (Cron)
Oyuncuları önceden uyarmak için EssentialsX zamanlayıcısını kullanabilirsiniz. Alternatif olarak crontab ile:
# Her gece 04:00'da restart
0 4 * * * systemctl restart minecraft
Ancak doğrudan restart yerine, oyuncuları bilgilendirip düzgünce kapatmak daha iyidir.
Yöntem 3: Paper'ın restart-script Özelliği
Paper.yml içinde:
settings:
restart-on-crash: true
restart-script: ./start.sh
Sunucu çöktüğünde Paper, restart-script'i otomatik çalıştırır.
Oyuncuları Uyarma
Ani restart yerine oyunculara önceden haber verin. EssentialsX veya özel bir restart plugin'i ile:
# 5 dakika öncesinden uyarı
say [SUNUCU] 5 dakika sonra bakım yeniden başlatması yapılacak!
# 1 dakika öncesinden
say [SUNUCU] 1 dakika kaldı!
# Restart
stop
Gece 04:00 restart'ı en az oyuncunun çevrimiçi olduğu saattir. Sunucu saatinizi ve oyuncu yoğunluğunuzu analiz edip en uygun saati belirleyin.
Watchdog Timeout
Paper'ın yerleşik Watchdog sistemi, sunucu belirli süre boyunca tick atlamazsa otomatik heap dump alıp kapanır. Bu sayede donmuş sunucular sonsuz beklemeye girmez. paper.yml içinde
watchdog.early-warning-every ve watchdog.early-warning-delay değerleriyle yapılandırılır.
💡 Etkileşim için giriş yap.