Help needed with Windows Service in Python

Ian hobson42 at gmaiil.com
Thu Sep 2 15:38:35 EDT 2010


  On 02/09/2010 20:06, Edward Kozlowski wrote:
> On Sep 2, 10:22 am, Ian Hobson<i... at 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



More information about the Python-list mailing list