Merhabalar,
bu makalede kısaca Windows servis nasıl oluşturulur ona bakacağız. Bu makale @emrhnerbay 'ın isteği üzerine oluşturdum. Windows servis birçok sistemde gerekli olan bir hizmet türüdür. Bu makalenin genel amacı ise Windows servis sürekli olarak bir uygulamayı nasıl kapatabiliriz o yönde. İsterseniz başlayalım.
İlk olarak ilgili paketi indirelim;
pip install pywin32
Sonrasında ilgili kodlamalara başlayalım. Önceden birkaç kelam etmek istiyorum. Bildiğiniz üzere Başlat->Hizmetler dediğiniz de önünüze açılan hizmet listesi vardır. Bu hizmetleri sağ tıklayarak durdurup, başlatabilir veya yeniden başlatabilirsiniz. Bu işlemi çift tıklayarak da tekrarlayıp servisi tamamen devre dışı bırakabilirsiniz. Başlat yerine Windows+R tuşları ile services.msc yazarak aynı ekrana ulaşabilirsiniz.
from SMWinservice import SMWinservice
from pathlib import Path
import time
import random
class ServisYazilimToplulugu(SMWinservice):
_svc_name_ = "YazilimTopluluguHizmeti" ///servis adımızı yazıyoruz. Boşluk ve Türkçe karakter olmasın.
_svc_display_name_ = "Yazılım Topluluğu Forum Servisi" ///servisimizin kullanıcının gördüğü adı yazıyoruz.
_svc_description_ = "Bu hizmet ilgili bir uygulama durdurur." ///servis açıklamasını yazıyrouz.
def start(self): ///servis başlatılınca durumu rapor alıyoruz.
self.isrunning = True
def stop(self): ///servis durdurulunca durumu rapor alıyoruz.
self.isrunning = False
def main(self):
while self.isrunning: ///burada servis çalıştığı süre boyunca tekrarlanan işlemler olur.
///buraya istenilen kodlar yazılabilir.
if __name__ == '__main__':
ServisYazilimToplulugu.parse_command_line()
Bu kodlar ile servisimizin kodlarını tamamladık. "buraya istenilen kodlar yazılabilir" denilen yere timer ile (5-10 saniyede bir kontrol veya daha fazla) ilgili işlemin çalışıp çalışmadığı kontrol edilir, eğer çalışıyorsa taskkill komutu Windows komut sistemin gönderilir (CMD). Bu konuda @Rayberk 'in cevapladığı @emrhnerbay 'ın sorduğu konuda nasıl komutun gönderileceği tartışılmıştı. İsterseniz kontrol ile de yapabilirsiniz. Kontrol için bu linkteki konuya göz atabilirsiniz.
Windows sisteme servisi ise aşağıdaki komut ile install etmemiz gerekmekte. Böylelikle servis hizmete girecektir.
python ServisYazilimToplulugu.py install
Bu komut Windows komut sistemi (CMD)'ye yazılması gerekmektedir. Sonrasında ise Başlat->Servisler diyerek YazilimTopluluguHizmeti adında bir hizmetin olup olmadığını kontrol ediniz. Eğer varsa başarılı bir şekilde yüklenmiş demektir. Yine komut sistemini kullanarak aşağıdaki komut ile servisi durdurup, başlatabilirsiniz;
net stop YazilimTopluluguHizmeti
Kaynakça (References) - (Thank you to the people concerned):
Davide Mastromatteo - How to create a Windows Service in Python
Umarım faydası dokunur,
Sorularınızı çekinmeden sorabilirsiniz,
İyi çalışmalar dilerim.