On Sep 2, 2:38 pm, Ian <hobso...@gmaiil.com> wrote: > On 02/09/2010 20:06, Edward Kozlowski wrote: > > > > > On Sep 2, 10:22 am, Ian Hobson<i...@ianhobson.co.uk> wrote: > >> Hi All, > > >> I am attempting to create a Windows Service in Python. > > >> I have the framework (from Mark Hammond and Andy Robinason's book) > >> running - see below. It starts fine - but it will not stop. :( > > >> net stop "Python Service" > > >> and using the services GUI both leave the services showing it as "stopping" > > >> I guess this means SvcStop is called but it is not enough to get it out > >> of the machine. > > >> Does anyone know why not? > > >> Python 2.7 with win32 extensions, sunning on Windows 7. > > >> Many thanks > > >> Ian > > >> the (complete) source code is > >> #!/usr/bin/env python > >> # coding=utf8 > >> # service.py = testing services and Named pipes > >> # > >> import win32serviceutil > >> import win32service > >> import win32event > >> class PythonService(win32serviceutil.ServiceFramework): > >> _svc_name_ = "Python Service" > >> _svc_display_name_ = "Test Service in Python" > >> 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) > >> wind32event.SetEvent(self.hWaitStop) > >> def SvcDoRun(self): > >> win32event.WaitForSingleObject(self.hWaitStop,win32event.INFINITE) > >> if __name__ == '__main__': > >> win32serviceutil.HandleCommandLine(PythonService) > > Looks to me like there may be a typo in your code. > > > You probably meant win32event.SetEvent(self.hWaitStop), not > > wind32event. > > > Regards, > > -Edward Kozlowski > > A huge big thank you Edward. That was the problem. > > Regards > > Ian
You're most welcome. If you're looking at running services in Windows using Python, one other hangup I ran into was that my services would freeze for no reason. At Pycon '09, I learned that there were buffers for stdout and stderr that were filling. I wish I could remember who gave the talk that included the jewel of knowledge, because I'd love to give credit where it's due... After I redirected stdout and stderr to files, my problems with the services freezing went away. Regards, -Edward Kozlowski -- http://mail.python.org/mailman/listinfo/python-list