Menjalankan Skrip Python sebagai Perkhidmatan Windows
Keperluan untuk mengurus objek yang saling berkaitan yang disimpan dalam pangkalan data memerlukan perkhidmatan yang menyediakan antara muka tahap yang lebih tinggi untuk operasi pada objek tersebut. Walau bagaimanapun, kebimbangan timbul mengenai menjalankan program Python sebagai perkhidmatan Windows untuk membolehkan pelaksanaan automatik tanpa log masuk pengguna.
Adakah Kemungkinan untuk Menjalankan Program Python sebagai Perkhidmatan Windows?
Ya, adalah mungkin untuk menjalankan program Python sebagai perkhidmatan Windows menggunakan perpustakaan pythoncom yang disertakan dalam ActivePython atau boleh dipasang dengan pywin32.
Sampel Pelaksanaan
Satu rangka asas perkhidmatan ringkas:
import win32serviceutil import win32service import win32event import servicemanager 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) 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)
Kesedaran dan Pengurusan Perkhidmatan Windows
Windows mengetahui perkhidmatan melalui win32serviceutil.ServiceFramework dan modul pengurus perkhidmatan.
Anda boleh menguruskan perkhidmatan menggunakan utiliti Windows asli seperti applet Perkhidmatan dalam Panel Kawalan atau melalui baris arahan dengan arahan seperti:
Analog kepada /etc/init.d
Tiada persamaan langsung dengan meletakkan skrip mula/henti dalam /etc/init.d dalam Windows. Perkhidmatan Windows biasanya dikonfigurasikan dalam Windows Registry. Walau bagaimanapun, anda boleh menggunakan pengurus kawalan perkhidmatan seperti SystemD atau Supervisor untuk mencapai kefungsian yang serupa.
Atas ialah kandungan terperinci Bolehkah Program Python Dijalankan sebagai Perkhidmatan Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!