Menü
💬 Forum 🛒 Mağaza ⛏️ Sunucular ⚔️ Klanlar 📰 Blog 🏆 Liderlik 👥 Üyeler 🎖️ Rütbeler
1 üye online 👥 5 toplam üye 📝 Bugün 12 konu 💬 Bugün 12 mesaj

📖 Rehber Minecraft Sunucusunu Otomatik Yeniden Başlatma: Watchdog ve Cron Rehberi

orginscorel · 10 saat önce · 1 gönderi · 0 görüntülenme
#1

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.

Cevap yazabilmek için giriş yap.