title: Problems running a python script as a service
body: <p>I have used <a href="https://stackoverflow.com/questions/32404/can-i-run-a-python-script-as-a-service-in-windows-how">this question</a> to learn install my python script as a service with ActivePython.  I am able to install my script and remove it, as I would expect, but my problem is that once I start the script running, I then lose the ability to stop it or remove it.  It just runs permanently and I cannot get rid of it.  The answer to the linked question mentions checking a flag to stop the script.  Can someone explain how to do this?</p>
  
  <p>Right now the script does very little.  just prints lines to a file every few seconds.  I want to get it working before I move on to more complicated things.</p>
  
  <pre><code>import pythoncom
  import win32serviceutil
  import win32service
  import win32event
  import servicemanager
  import socket
  import time
  
  
  class AppServerSvc (win32serviceutil.ServiceFramework):
      _svc_name_ = "PythonTest"
      _svc_display_name_ = "Python Test"
      _svc_description_ = "This is a test of installing Python services"
  
      def __init__(self,args):
          win32serviceutil.ServiceFramework.__init__(self,args)
          self.hWaitStop = win32event.CreateEvent(None,0,0,None)
          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):
          i=0
          while True:
              f=open("C:\\hello.txt","a")
              f.write("hello"+str(i)+"\n")
              f.close()
              i=i+1
              time.sleep(5)
  
  
  if __name__ == '__main__':
      win32serviceutil.HandleCommandLine(AppServerSvc)
  </code></pre>