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

Ralf Schmitt ralf at brainbot.com
Wed Nov 30 17:41:32 CET 2005


Hi all,

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?

TIA,
- Ralf




#! /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)


More information about the Python-win32 mailing list