Rumah >pembangunan bahagian belakang >Tutorial Python >Bolehkah Skrip Python Dijalankan sebagai Perkhidmatan Windows?
Menjalankan Skrip Python sebagai Perkhidmatan Windows
Dalam konteks membangunkan sistem berasaskan perkhidmatan dalam Python, persoalan timbul sama ada ia mungkin untuk menjalankan skrip Python sebagai perkhidmatan Windows. Artikel ini menangani pertanyaan ini dan memberikan jawapan yang komprehensif.
Sememangnya, program Python boleh dihoskan sebagai perkhidmatan Windows, memanfaatkan perpustakaan pythoncom yang disertakan dalam ActivePython atau melalui sambungan pywin32. Untuk menggambarkan proses ini, pertimbangkan rangka kod berikut untuk perkhidmatan asas:
import win32serviceutil import win32service import win32event import servicemanager import socket class AppServerSvc (win32serviceutil.ServiceFramework): _svc_name_ = "TestService" _svc_display_name_ = "Test Service" def __init__(self,args): win32serviceutil.ServiceFramework.__init__(self,args) self.hWaitStop = win32event.CreateEvent(None,0,0,None) socket.setdefaulttimeout(60) def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) win32event.SetEvent(self.hWaitStop) def SvcDoRun(self): servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_,'')) self.main() def main(self): pass if __name__ == '__main__': win32serviceutil.HandleCommandLine(AppServerSvc)
Masukkan kod tersuai anda ke dalam fungsi main(), biasanya menggunakan gelung tak terhingga yang boleh diganggu dengan memantau bendera yang ditetapkan dalam kaedah SvcStop.
Selain itu, Windows dimaklumkan tentang kewujudan perkhidmatan anda melalui Pengurus Perkhidmatan. Anda boleh memantau dan mengurusnya menggunakan utiliti Windows asli seperti Services Console (services.msc) atau alat baris arahan sc. Sama seperti direktori /etc/init.d Unix untuk skrip mula/henti, Windows menggunakan scm (Pengurus Kawalan Perkhidmatan) untuk menguruskan perkhidmatan. Dengan menggunakan utiliti sc, anda boleh melakukan pelbagai tindakan pada perkhidmatan, termasuk mencipta, memulakan, menghentikan dan mengkonfigurasinya.
Atas ialah kandungan terperinci Bolehkah Skrip Python Dijalankan sebagai Perkhidmatan Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!