Python-Skripte als Windows-Dienste ausführen
Die Notwendigkeit, in einer Datenbank gespeicherte miteinander verbundene Objekte zu verwalten, erfordert einen Dienst, der eine Schnittstelle auf höherer Ebene dafür bereitstellt Operationen an diesen Objekten. Es bestehen jedoch Bedenken hinsichtlich der Ausführung von Python-Programmen als Windows-Dienst, um eine automatische Ausführung ohne Benutzeranmeldung zu ermöglichen.
Ist es möglich, Python-Programme als Windows-Dienst auszuführen?
Ja, es ist möglich, Python-Programme als Windows-Dienst mithilfe der Pythoncom-Bibliotheken auszuführen, die in ActivePython enthalten sind oder mit installiert werden können pywin32.
Beispielimplementierung
Ein Grundgerüst eines einfachen Dienstes:
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)
Windows Service Awareness and Management
Windows erkennt den Dienst über die Module win32serviceutil.ServiceFramework und servicemanager.
Sie können den Dienst mit den nativen Windows-Dienstprogrammen wie dem Dienste-Applet in der Systemsteuerung oder über die Befehlszeile mit Befehlen wie:
Analog zu /etc/init.d
Es gibt kein direktes Äquivalent zum Einfügen eines Start-/Stopp-Skripts in /etc/init.d Windows. Windows-Dienste werden normalerweise in der Windows-Registrierung konfiguriert. Sie können jedoch Dienstkontrollmanager wie SystemD oder Supervisor verwenden, um ähnliche Funktionen zu erreichen.Das obige ist der detaillierte Inhalt vonKönnen Python-Programme als Windows-Dienste ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!