[python-win32] win32 service not receiving shutdown notification on reboot

Tim Roberts timr at probo.com
Thu Dec 1 18:27:19 CET 2005


On Wed, 30 Nov 2005 17:41:32 +0100, Ralf Schmitt <ralf at brainbot.com>

>I use the attached program to start a win32 service.
>Stopping the service using the service manager works fine, but when I 
>reboot the machine, the service just seems to be killed, without 
>SvcStop/SvcShutdown being called (i.e. it never prints "DONE" on reboot).
>Tested on w2k using python2.3, and on XP using Python 2.4, both using 
>pywin 205.
>
>Does anybody have an idea?
>  
>

Umm, do you realize that your 'print "DONE"' statement is not part of 
the SvcStop function, but rather the SvcDoRun function?

>#! /usr/bin/env python
>
>import sys
>import time
>import win32serviceutil, win32service
>
>class MyTwistedService(win32serviceutil.ServiceFramework):
>     _svc_name_ = 'AA'
>     _svc_display_name_ = 'AA'
>     def SvcDoRun(self):
>         # Can't use stdout for logging -- .flush will barf
>         sys.stdout = open('c:/mylog.txt','a', 0)
>         self.shouldStop = False
>         while not self.shouldStop:
>             print time.ctime(), "running"
>             time.sleep(1)
>
>         print "DONE"
>
>     def SvcStop(self):
>         self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
>         self.shouldStop = True
>
>
>     SvcShutdown = SvcStop
>
>if __name__ == '__main__':
>     win32serviceutil.HandleCommandLine(MyTwistedService)
>  
>


-- 
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.



More information about the Python-win32 mailing list