Maison >développement back-end >Tutoriel Python >Les scripts Python peuvent-ils être exécutés en tant que services Windows ?
Exécuter des scripts Python en tant que services Windows
Dans le contexte du développement d'un système basé sur les services en Python, la question se pose de savoir s'il est possible pour exécuter des scripts Python en tant que services Windows. Cet article aborde cette question et apporte une réponse complète.
En effet, il est possible d'héberger des programmes Python en tant que services Windows, en exploitant les bibliothèques pythoncom incluses dans ActivePython ou via l'extension pywin32. Pour illustrer ce processus, considérons le squelette de code suivant pour un service rudimentaire :
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)
Insérez votre code personnalisé dans la fonction main(), en déployant généralement une boucle infinie qui peut être interrompue en surveillant un indicateur défini dans la méthode SvcStop.
De plus, Windows est alerté de l'existence de votre service via le Service Manager. Vous pouvez le surveiller et le gérer à l'aide d'utilitaires Windows natifs tels que la console de services (services.msc) ou l'outil de ligne de commande sc. Semblable au répertoire /etc/init.d d'Unix pour les scripts de démarrage/arrêt, Windows utilise le scm (Service Control Manager) pour gérer les services. À l'aide de l'utilitaire sc, vous pouvez effectuer diverses actions sur les services, notamment leur création, leur démarrage, leur arrêt et leur configuration.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!