Heim > Backend-Entwicklung > Python-Tutorial > Können Python-Skripte als Windows-Dienste ausgeführt werden?

Können Python-Skripte als Windows-Dienste ausgeführt werden?

Mary-Kate Olsen
Freigeben: 2024-12-04 09:44:14
Original
202 Leute haben es durchsucht

Can Python Scripts Be Run as Windows Services?

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage