docs: def generic_service_main(cls: Type[WindowsService], name: str) -> None:
      """
      Call this from your command-line entry point to manage a service.
  
      - Via inherited functions, enables you to ``install``, ``update``,
        ``remove``, ``start``, ``stop``, and ``restart`` the service.
      - Via our additional code, allows you to run the service function directly
        from the command line in debug mode, using the ``debug`` command.
      - Run with an invalid command like ``help`` to see help (!).
  
      See
      https://mail.python.org/pipermail/python-win32/2008-April/007299.html
  
      Args:
          cls: class deriving from :class:`WindowsService`
          name: name of this service
      """
      argc = len(sys.argv)
      if argc == 1:
          try:
              print("Trying to start service directly...")
              evtsrc_dll = os.path.abspath(servicemanager.__file__)
              # noinspection PyUnresolvedReferences
              servicemanager.PrepareToHostSingle(cls)  # <-- sets up the service
              # noinspection PyUnresolvedReferences
              servicemanager.Initialize(name, evtsrc_dll)
              # noinspection PyUnresolvedReferences
              servicemanager.StartServiceCtrlDispatcher()
          except win32service.error as details:
              print("Failed: {}".format(details))
              # print(repr(details.__dict__))
              errnum = details.winerror
              if errnum == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:
                  win32serviceutil.usage()
      elif argc == 2 and sys.argv[1] == 'debug':
          s = cls()
          s.run_debug()
      else:
          win32serviceutil.HandleCommandLine(cls)