docs: def start_processes(self, max_restarts=-1):
          """
          Start processes and check their status. When some process crashes,
          start it again. *max_restarts* is maximum amount of the restarts
          across all processes. *processes* is a :class:`list` of the
          :class:`ProcessWrapper` instances.
          """
          while 1:
              for process in self.processes:
                  if not process:
                      # When process has not been started, start it
                      if not process.has_started:
                          process.start()
                          continue
                      # When process has stopped, start it again
                      exitcode = process.exitcode
                      if exitcode != 0:
                          # Process has been signaled or crashed
                          if exitcode > 0:
                              self.logger.error(
                                  "Process '%s' with pid %d died with exitcode "
                                  "%d", process.name, process.pid, exitcode
                              )
                          else:
                              self.logger.error(
                                  "Process '%s' with pid %d died due to %s",
                                  process.name, process.pid,
                                  SIGNALS_TO_NAMES_DICT[abs(exitcode)]
                              )
                          # Max restarts has been reached, exit
                          if not max_restarts:
                              self.logger.fatal("Too many child restarts")
                              break
                          # Start process again
                          process.start()
                          # Decrement max_restarts counter
                          if max_restarts > 0:
                              max_restarts -= 1
                      else:
                          # Process has stopped without error
                          self.logger.info(
                              "Process '%s' with pid %d has stopped",
                              process.name, process.pid
                          )
                          # Start process again
                          process.start()
                          self.logger.info(
                              "Process '%s' has been started with pid %d",
                              process.name, process.pid
                          )
              else:
                  time.sleep(0.25)
                  continue
              break