Python Scriptini Systemd Servisine(Daemon) Dönüştürme
Bir sistem yöneticisi için en değerli kaynak zamandır. Geliştirdiğimiz Python tabanlı yönetim panelini manuel kullanmak yerine, arka planda çalışan bir Daemon (Servis) haline getirmek, okulun tüm etkileşimli tahtalarını "kendi kendini yöneten" bir ekosisteme dönüştürür.
1. Neden Daemon (Arka Plan Servisi)?
Grafiksel arayüzler (GUI) kullanıcı etkileşimi için harikadır; ancak sürekli çalışma gerektiren görevler için verimli değildirler. Servis yapısına geçmenin avantajları şunlardır:
Oturum Bağımsızlığı: Bilgisayarda oturum açmasanız dahi zil programı çalışmaya devam eder.
Hata Yönetimi: Script bir şekilde çökerse, Linux (Systemd) onu otomatik olarak yeniden başlatır.
Kaynak Tasarrufu: Arka planda sadece gerekli mantık (mantıksal döngü) çalışır, grafiksel yük oluşmaz.
2. Çekirdek Yapı: etap-service.py
Öncelikle, görsel arayüzden bağımsız, sadece JSON dosyalarınızı okuyup saat takibi yapan bir "worker" scripti oluşturmalıyız. Bu script, her 30 saniyede bir program.json dosyasını kontrol ederek aksiyon alır.
Önemli Not: Arka plan servislerinde dosya yolları her zaman tam yol (absolute path) olarak verilmelidir.
3. Linux Sistemine Servis Olarak Tanıtma (Systemd)
Pardus üzerinde bu scriptin bir sistem bileşeni gibi çalışması için bir .service dosyası oluşturmamız gerekir.
Terminalden şu komutla servis dosyasını oluşturun:
sudo nano /etc/systemd/system/etap-otomasyon.serviceİçeriği şu şekilde düzenleyin:
Ini:[Unit] Description=TSOMTAL ETAP Otomatik Tahta Yönetim Servisi After=network.target [Service] ExecStart=/usr/bin/python3 /home/nuri/Masaüstü/etap-servis.py WorkingDirectory=/home/nuri/Masaüstü User=nuri Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
4. Servisi Yayına Alma ve İzleme
Servis dosyasını kaydettikten sonra sistemi haberdar edip servisi başlatalım:
Sistemi Yenile:
sudo systemctl daemon-reloadServisi Başlat:
sudo systemctl start etap-otomasyon.serviceBaşlangıca Ekle:
sudo systemctl enable etap-otomasyon.serviceDurumu Kontrol Et:
sudo systemctl status etap-otomasyon.service
Sonuç
Artık iki parçalı bir yönetim sisteminiz var:
Görsel Panel (GUI): Logo, okul adı ve progress bar ile tahtaları taradığınız, zil programını "Sihirbaz" ile oluşturduğunuz ve verileri kaydettiğiniz yönetim merkezi.
Arka Plan Servisi (Daemon): Panel kapalı olsa dahi sizin yerinize saatleri takip eden ve tahtaları yöneten görünmez güç.
Bu yapı, TSOMTAL gibi kurumsal bir okulun IT altyapısını çok daha modern ve hatasız bir hale getirecektir.
"Sistem İzlenebilirliği ve Loglama"
Profesyonel Bir Dokunuş: Neden Log (Günlük) Tutmalıyız?
Bir otomasyon sistemi kurduğunuzda, sistemin arka planda gerçekten ne yaptığını bilmek istersiniz. Örneğin; "Salı günü 3. teneffüste 10-A sınıfının tahtası neden kilitlenmedi?" sorusunun cevabı, tutulan log kayıtlarında gizlidir.
Sistemimizde Loglama Nasıl Çalışır? Geliştirdiğimiz Python servisi, her işlem adımını servis.log dosyasına kronolojik olarak kaydeder. Bu kayıtlarda şunları görebiliriz:
Hangi saatte hangi ders programı tetiklendi?
Hangi IP adreslerine SSH komutu başarıyla ulaştı?
Hangi tahtalarda (bağlantı hatası, yanlış şifre vb.) sorun yaşandı?
Bu sayede, TSOMTAL bilişim laboratuvarından tüm okulun tahtalarını yönetirken, fiziksel olarak sınıfları gezmeye gerek kalmadan arıza tespiti yapabiliriz. Python'un logging kütüphanesi sayesinde, hataları seviyelerine göre (INFO, ERROR) ayırarak sistem sağlığını anlık olarak takip etmek artık çok kolay.
Bu ekleme ile projeniz tam teşekküllü bir Enterprise (Kurumsal) yazılım kimliği kazandı. Servisi tekrar başlatmak için şu komutu kullanmanız yeterlidir:
sudo systemctl restart etap-otomasyon.service
Kayıtları canlı izlemek isterseniz terminale şu komutu yazabilirsiniz:
tail -f /home/nuri/Masaüstü/servis.log
Yorumlar
Yorum Gönder