Otomatik Sunucu Restart Sistemi (Çökme Tespiti + Yeniden Başlatma)
Gönderilme zamanı: Sal Haz 24, 2025 5:44 pm
[hr]Açıklama yazdı: Sunucu çöktüğünde fark etmeden saatlerce kapalı kalması, oyuncu kaybına neden olabilir. Bu rehberde, PvP oyun sunucun için otomatik çökme tespiti + yeniden başlatma (restart) sistemini nasıl kuracağını öğreneceksin.
Bu script, oyun sunucusunun çalışıp çalışmadığını kontrol eder. Eğer çökmüşse yeniden başlatır ve log kaydı oluşturur.
Kod: Tümünü seç
#!/bin/bash
PROCESS="game_r" # Çalışan process adı (Metin2 için game_r, KO için AI, GameServer olabilir)
LOGFILE="/var/log/server_monitor.log"
RESTARTCMD="/usr/game/start.sh" # Sunucunu başlatan komut/script
if ! pgrep -x "$PROCESS" > /dev/null
then
echo "$(date '+%Y-%m-%d %H:%M:%S') | $PROCESS çökmüş. Yeniden başlatılıyor..." >> $LOGFILE
$RESTARTCMD
else
echo "$(date '+%Y-%m-%d %H:%M:%S') | $PROCESS çalışıyor." >> $LOGFILE
fi
Kod: Tümünü seç
*/5 * * * * /root/scripts/check_server.sh >/dev/null 2>&1
[hr]
Sunucun çöktüğünde yeniden ayağa kalkması için aşağıdaki örnek betiği kullanabilirsin.
Kod: Tümünü seç
#!/bin/bash
cd /usr/game/channel1
./db &
sleep 2
./auth &
sleep 2
./game_r &
[hr]
Sunucu her çöktüğünde Discord kanalına bildirim göndermek istersen şu satırı kullan:
Kod: Tümünü seç
curl -H "Content-Type: application/json" \
-d '{"content":"⚠️ GameServer çöktü ve yeniden başlatıldı."}' \
https://discord.com/api/webhooks/WEBHOOK_URL_BURAYA
- “nohup” ve “screen” komutlarıyla process’leri ayrı terminale alın
- Her restart’tan sonra timestamp loglayın
- Bazı sunucularda kernel ayarları değiştirilmeli (ulimit, maxproc gibi)
- Hazır “Metin2 restart paketi” (.sh + cron + log dosyası)
- Knight Online için EXE başlatıcı + watchdog uygulaması
- Sunucu sağlık monitörü için web panel (PHP tabanlı)
Bu sistem sadece sunucu process çökmelerinde çalışır. Network sorunları, donma veya veri bozulmaları için manuel kontrol gerekebilir. Ek olarak yedekleme sistemi ile entegre edilmelidir.
[hr]
- [SCRIPT] Oyuncu Giriş Loglama Sistemi (PHP + MySQL)
- [REHBER] Sunucu Durum API'si (Online sayısı, uptime)
- [TASARIM] Launcher’a Güncel Etkinlik Takvimi Ekleme
Kendi “start.sh” dosyanı paylaşırsan sana özel sürümünü hazırlayabilirim.