Bot Hosting

Discord botu çöküyor: otomatik yeniden başlatma (pm2, systemd ve panel)

2 Ekim 20263 dk okumaSon güncelleme: 2 Ekim 2026Yazar: Revolvant Ekibi
discord bot çöküyorotomatik yeniden başlatmapm2systemdcrash loopbot hatası
Kısa cevapBot çöktüğünde kendiliğinden yeniden açılması için bir süreç yöneticisi gerekir: pm2 (Node.js), systemd (Linux) ya da bir bot hosting paneli. Ama yeniden başlatma sorunu çözmez, gizler: önce hata yakalayın (unhandledRejection), logları ve çökme geçmişini inceleyin, bellek sızıntısını kontrol edin ve çökme döngüsüne karşı bekleme süresi kullanın. Çökme olduğunda bildirim almak için webhook ya da uptime izleme ekleyin.

Bot çalışıyor, çalışıyor, bir gün sessizce kapanıyor. Bu yazıda neden çöktüğünü bulmayı ve çökünce otomatik yeniden başlatmayı anlatıyoruz.

Bir bot neden çöker?

NedenBelirti
Yakalanmamış hata / reddedilen söz (promise)UnhandledPromiseRejection, süreç sonlanır
Bellek sızıntısıBellek zamanla artar, sonunda Killed / heap out of memory
Discord API / ağ hatasıBağlantı kopması, ECONNRESET, 429
Bağımlılık veya sürüm uyumsuzluğuBaşlangıçta Cannot find module
Eksik intent / izinUsed disallowed intents
Sunucu yeniden başlamasıSüreç yöneticisi yoksa bot geri açılmaz

1. Önce hataları yakalayın

process.on('unhandledRejection', (e) => console.error('unhandledRejection:', e));
process.on('uncaughtException', (e) => { console.error('uncaughtException:', e); process.exit(1); });
client.on('error', console.error);
client.on('shardError', console.error);

Kritik hatadan sonra process.exit(1) ile kontrollü çıkıp süreç yöneticisinin temiz bir başlangıç yapmasını sağlamak, bozuk durumda çalışmaya devam etmekten iyidir.

2. pm2 ile otomatik yeniden başlatma (Node.js)

npm install -g pm2
pm2 start index.js --name botum --max-memory-restart 400M
pm2 save
pm2 startup        # sunucu açıldığında pm2'yi başlatır
pm2 logs botum
  • --max-memory-restart, bellek sızıntısında botu belirli sınırda yeniden başlatır.
  • pm2 monit ile bellek/CPU'yu izleyin.
  • Windows'ta pm2 startup yerine ek bir araç (ör. pm2-windows-startup) ya da zamanlanmış görev gerekir.

3. systemd ile (Linux)

/etc/systemd/system/botum.service:

[Unit]
Description=Discord Botum
After=network-online.target

[Service]
WorkingDirectory=/opt/botum
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=5
User=bot

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now botum
journalctl -u botum -f

4. Çökme döngüsüne (crash loop) dikkat

Bot başlar başlamaz çöküyorsa, süreç yöneticisi onu saniyede birkaç kez yeniden başlatabilir. Bu hem kaynak yer hem de Discord'da hız sınırına yol açar. Önlem:

  • Bekleme süresi (RestartSec=5, pm2'de --restart-delay 5000) kullanın.
  • Üst sınır koyun: art arda N çökmeden sonra durup sizi uyarsın.
  • Çökmenin asıl nedenini loglardan bulun; yeniden başlatma sadece belirtiyi gizler.

5. Bot hosting panelinde

Revolvant gibi panellerde bunların çoğu hazırdır: bot çökerse bekleme süresiyle otomatik yeniden başlatılır, çökme sayısı ve son log satırları çökme geçmişi olarak saklanır, maksimum yeniden başlatma sınırından sonra sizi uyarır, sunucu yeniden başlasa bile açık botlar geri gelir. Kurulum için Discord bot hosting sayfasına bakın.

6. Çökmeden haberdar olun

  • Webhook bildirimi: Discord, Telegram veya Slack kanalına "bot çöktü" mesajı.
  • Uptime izleme: botun yanında bir sağlık adresi çalıştırın ve uptime servisiyle izleyin; kesintide size haber verir.

Sağlık adresi örneği için: Uptime izleme nedir?

Hızlı sorun giderme sırası

  1. Konsolun son 50 satırına bakın; ilk hatayı bulun.
  2. Bellek kullanımını izleyin: sürekli artıyor mu?
  3. Bağımlılıkları ve Node sürümünü doğrulayın.
  4. Intent ve izinleri Developer Portal'da kontrol edin.
  5. Hız sınırı (429) var mı? İstekleri azaltın.
  6. Sorun yalnızca belirli komutlarda mı? O komutun kodunu inceleyin.

Sık sorulan sorular

pm2 mi systemd mi?

Node.js botları için pm2 pratiktir (log, izleme, bellek sınırı dahil). Sunucunuzda başka servisler de yönetiyorsanız systemd işletim sistemiyle bütünleşik çalışır. İkisi de otomatik yeniden başlatma sağlar.

Botum her gün aynı saatte çöküyor. Neden?

Zamanlanmış bir görev, bellek dolması, yedekleme işlemi ya da sunucu bakım penceresi olabilir. Logları ve bellek grafiğini o saat aralığında inceleyin; uptime izleme geçmişi örüntüyü gösterir.

Otomatik yeniden başlatma yeterli mi?

Hayır; belirtiyi gizler. Asıl hatayı bulmak için log ve çökme geçmişini inceleyin, hataları yakalayın ve bellek sızıntısını giderin.

Python botlarını nasıl yeniden başlatırım?

systemd ya da supervisor kullanabilirsiniz; bot hosting panelleri Python süreçlerini de aynı şekilde izler ve yeniden başlatır.

Botunuzu 7/24 çalıştırın

ZIP’i yükleyin, panel kursun, çalıştırsın ve izlesin.

İlgili yazılar