ForumDayısı
Yeni Üye
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:
supervisordvesupervisorctlile 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-failuresürecin hata verdiği anda yeniden başlatır.RestartSec=5yeniden başlatmadan önce 5 s bekler.WantedBy=multi-user.targetsistem 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
| Özellik | Systemd | Cron | Supervisor |
|---|---|---|---|
| İzleme | Sürekli, beklenmeyen kapanma tespit edilir | Yok, sadece zamanlayıcı | Sürekli, otomatik yeniden başlatma |
| Kavrama | Servis tabanlı, birim dosyaları | Zaman tabanlı | Süreç bazlı, konfigürasyon dosyaları |
| Yeniden Başlatma Sıklığı | Hata durumunda anında | Belirli aralıkta | Hata durumunda anında |
| Kullanım Kolaylığı | Sistem yöneticisi için entegre | Basit, ancak karmaşık koşullarda zor | Ek yapılandırma gerektirir |
| Kaynak Kullanımı | Düşük | Az | Orta (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?