¿Cómo opera Python los servicios de Windows?
Puedes usar la biblioteca ?pythoncom, que contiene ActivePython o puedes instalar pywin32 (extensiones de Python para Windows).
Aquí tienes un ejemplo de un servicio sencillo: import?pythoncom
importar?win32serviceutil
importar?win32service
importar?win32event
importar?servicemanager
importar?socket
clase?AppServerSvc?(win32serviceutil.ServiceFramework):
_svc_name_?=?"TestService"
_svc_display_name_?=?"Test?Service"
def?__init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
self.hWaitStop?=?win32event.CreateEvent(Ninguno, 0, 0, Ninguno)
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):
pasar
if?__name__?== ?' __main__':
win32serviceutil.HandleCommandLine(AppServerSvc)
Su código debe colocarse en el método main(). Generalmente hay algunas situaciones al verificar el indicador que configuró. el método SvcStop y luego interrumpa el ciclo
.