winService.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import sys
  2. import time
  3. import threading
  4. import win32event
  5. import win32service
  6. import win32serviceutil
  7. from appService.logUtil import LogUtil
  8. logUtil=LogUtil()
  9. logger=logUtil.getLogger()
  10. def CommandLine(classService):
  11. win32serviceutil.HandleCommandLine(classService)
  12. class WinService(win32serviceutil.ServiceFramework):
  13. _svc_name_ = "MyService"
  14. _svc_display_name_ = "My Service"
  15. _svc_description_ = "This is a sample service."
  16. def __init__(self, args):
  17. logger.info("execute init")
  18. try:
  19. win32serviceutil.ServiceFramework.__init__(self, args)
  20. self.stop_event = win32event.CreateEvent(None, 0, 0, None)
  21. except Exception as ex:
  22. logger.error(ex)
  23. def SvcStop(self):
  24. self.stop()
  25. def SvcDoRun(self):
  26. self.start()
  27. def main(self):
  28. while self.is_running:
  29. logger.info("Service is running...")
  30. time.sleep(10)
  31. def start(self):
  32. logger.info("execute start")
  33. try:
  34. self.ReportServiceStatus(win32service.SERVICE_START_PENDING)
  35. self.is_running = True
  36. self.ReportServiceStatus(win32service.SERVICE_RUNNING)
  37. self.main()
  38. except Exception as ex:
  39. logger.error(ex)
  40. def stop(self):
  41. self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
  42. self.is_running = False
  43. win32event.SetEvent(self.stop_event)
  44. def status(self):
  45. if self.is_running:
  46. print("Service is running.")
  47. else:
  48. print("Service is not running.")