docs: def start(self):
          """
          Run the process.
          """
          if self:
              raise ProcessError(
                  "Process '%s' has been already started" % self.name)
          first_run = not self.has_started
          # Run process
          self._process = self._process_cls(*self._process_args)
          self._process.daemon = False
          self._process.start()
          # Wait unless process is successfully started
          if first_run and self._wait_unless_ready:
              if self._timeout:
                  stop_time = time.time() + self._timeout
                  while time.time() < stop_time and not self._process.ready:
                      time.sleep(0.25)
                  if not self._process.ready:
                      raise ProcessError(
                          "Timeout during start process '%s'" % self.name)
              else:
                  while not self._process.ready:
                      time.sleep(0.25)