Systemd ile Belirli Portların Otomatik Yeniden Başlatılması: Sunucu Yönetiminde Port Servislerini Karşılaştırma

ForumDayısı

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0

1. Yöntem Tanımları​

  • Systemd: Birim dosyalarıyla (*.service) doğrudan süreç yönetimi sağlar.
  • Cron: Zamanlayıcı çalıştırma imkânı verir, izleme yoktur.
  • Supervisor: supervisord ve supervisorctl ile süreçlerin sürekli kontrolünü sağlar.

2. Systemd ile Port Servisi Oluşturma​

INI:
# /etc/systemd/system/port-8080.service
[Unit]
Description=Port 8080 Dinleyici
After=network.target

[Service]
ExecStart=/usr/bin/python3 -m http.server 8080
Restart=on-failure
RestartSec=5
TimeoutStopSec=10

[Install]
WantedBy=multi-user.target
  • Restart=on-failure sürecin hata verdiği anda yeniden başlatır.
  • RestartSec=5 yeniden başlatmadan önce 5 s bekler.
  • WantedBy=multi-user.target sistem açılışında otomatik başlatma sağlar.

Yapılandırma sonrası:
Kod:
sudo systemctl daemon-reload
sudo systemctl enable --now port-8080.service

3. Cron Yöntemi​

Cron ile yeniden başlatma için:
Bash:
* * * * * /usr/sbin/lsof -i :8080 || /usr/bin/systemctl start port-8080.service
  • Her dakikada portun açık olup olmadığını kontrol eder.
  • Gerçek zamanlı izleme yok; yalnızca op‑a göre başlatma yapar.

4. Supervisor Yöntemi​

supervisord için supervisor.conf:
Kod:
[program:port8080]
command=/usr/bin/python3 -m http.server 8080
autostart=true
autorestart=true
stderr_logfile=/var/log/port8080.err.log
stdout_logfile=/var/log/port8080.out.log
  • Sürekli canlı izleme, ayrıntılı günlük kaydı.
  • Systemd’e göre daha bağımsız, ancak ayrı konfigürasyon gerekebilir.

5. Karşılaştırma Tablosu​


ÖzellikSystemdCronSupervisor
İzlemeSürekli, beklenmeyen kapanma tespit edilirYok, sadece zamanlayıcıSürekli, otomatik yeniden başlatma
KavramaServis tabanlı, birim dosyalarıZaman tabanlıSüreç bazlı, konfigürasyon dosyaları
Yeniden Başlatma SıklığıHata durumunda anındaBelirli aralıktaHata durumunda anında
Kullanım KolaylığıSistem yöneticisi için entegreBasit, ancak karmaşık koşullarda zorEk yapılandırma gerektirir
Kaynak KullanımıDüşükAzOrta (daemon)

Seçim Önerisi:
  • Küçük, tek-işlem uygulamalar için systemd yeterli; yeniden başlatma kontrolü entegre.
  • Deneme, zaman bazlı test için cron tercih edilebilir.
  • Çoklu süreç, ayrıntılı günlük gerektiren ortamlarda supervisor uygundur.

Bu yapılandırmalar, port dinleyen uygulamaların kesintisiz çalışmasını sağlamak için tek tek ya da karışık kullanılabilir.
Bu yöntemlerden hangisi sizin ortamınızda en uygun olur? Kommentar?

İlgili konular​

 
Geri
En Üst