docs: def start(self, timeout=None):
          """Start running the command"""
  
          self.thread.start()
          start_time = time.time()
          if not timeout:
              timeout = self.timeout
          # every second, check the condition of the thread and return
          # control to the user if appropriate
          while start_time + timeout > time.time():
              self.thread.join(1)
              if self.started:
                  return True
              if self.error:
                  return False
          return False