Python-Skripte als Windows-Dienste ausführen
Im Zusammenhang mit der Entwicklung eines dienstbasierten Systems in Python stellt sich die Frage, ob dies möglich ist um Python-Skripte als Windows-Dienste auszuführen. Dieser Artikel befasst sich mit dieser Frage und bietet eine umfassende Antwort.
Tatsächlich ist es möglich, Python-Programme als Windows-Dienste zu hosten und dabei die in ActivePython enthaltenen Pythoncom-Bibliotheken oder die Erweiterung pywin32 zu nutzen. Um diesen Prozess zu veranschaulichen, betrachten Sie das folgende Codegerüst für einen rudimentären Dienst:
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)
Fügen Sie Ihren benutzerdefinierten Code in die Funktion main() ein und stellen Sie dabei normalerweise eine Endlosschleife bereit, die durch die Überwachung eines gesetzten Flags unterbrochen werden kann die SvcStop-Methode.
Darüber hinaus wird Windows über den Service Manager auf die Existenz Ihres Dienstes aufmerksam gemacht. Sie können es mit nativen Windows-Dienstprogrammen wie der Services Console (services.msc) oder dem sc-Befehlszeilentool überwachen und verwalten. Ähnlich wie das Verzeichnis /etc/init.d von Unix für Start-/Stopp-Skripte verwendet Windows den scm (Service Control Manager) zur Verwaltung von Diensten. Mit dem sc-Dienstprogramm können Sie verschiedene Aktionen für Dienste ausführen, einschließlich deren Erstellen, Starten, Stoppen und Konfigurieren.
Das obige ist der detaillierte Inhalt vonKönnen Python-Skripte als Windows-Dienste ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!