1. sayfa (Toplam 1 sayfa)

Otomatik Sunucu Restart Sistemi (Çökme Tespiti + Yeniden Başlatma)

Gönderilme zamanı: Sal Haz 24, 2025 5:44 pm
gönderen admin
🔁 [REHBER] Otomatik Sunucu Restart Sistemi (Çökme Tespiti + Yeniden Başlatma)
📅 Haziran 2025 | MMO.net.tr Geliştirici Alanı Sistem Rehberi
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.
[hr]
📁 1. Sunucu Süreç Kontrol Scripti (check_server.sh)
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
[hr]
📆 2. Cronjob ile Otomatik Takip (Her 5 dakikada bir)

Kod: Tümünü seç

*/5 * * * * /root/scripts/check_server.sh >/dev/null 2>&1
Yukarıdaki cron ayarı, her 5 dakikada bir scripti çalıştırarak sunucunun ayakta olup olmadığını kontrol eder.

[hr]
📁 3. Sunucu Başlatma Scripti (start.sh)

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 &
Not: Yukarıdaki örnek Metin2 için hazırlanmıştır. Knight Online için “GameServer.exe” ve “AI_Server.exe” olarak düzenlenebilir.

[hr]
📢 4. Discord Bildirimi (Opsiyonel)
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
[hr]
🛠️ Ekstra Güvenlik Önlemleri:
  • “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)
[hr]
📥 Ek Dosyalar (Yüklenince paylaşılacak):
  • 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ı)
[hr]
📌 Uyarı:
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]
✔️ Sonraki Rehberler:
  • [SCRIPT] Oyuncu Giriş Loglama Sistemi (PHP + MySQL)
  • [REHBER] Sunucu Durum API'si (Online sayısı, uptime)
  • [TASARIM] Launcher’a Güncel Etkinlik Takvimi Ekleme
🎯 MMO.net.tr Geliştirici Ekibi olarak başarılar dileriz!
Kendi “start.sh” dosyanı paylaşırsan sana özel sürümünü hazırlayabilirim. ✌️