docs: def run(conn, command, exit=False, timeout=None, **kw):
      """
      A real-time-logging implementation of a remote subprocess.Popen call where
      a command is just executed on the remote end and no other handling is done.
  
      :param conn: A connection oject
      :param command: The command to pass in to the remote subprocess.Popen
      :param exit: If this call should close the connection at the end
      :param timeout: How many seconds to wait after no remote data is received
                      (defaults to wait for ever)
      """
      stop_on_error = kw.pop('stop_on_error', True)
      if not kw.get('env'):
          # get the remote environment's env so we can explicitly add
          # the path without wiping out everything
          kw = extend_env(conn, kw)
  
      command = conn.cmd(command)
  
      timeout = timeout or conn.global_timeout
      conn.logger.info('Running command: %s' % ' '.join(admin_command(conn.sudo, command)))
      result = conn.execute(_remote_run, cmd=command, **kw)
      try:
          reporting(conn, result, timeout)
      except Exception:
          remote_trace = traceback.format_exc()
          remote_error = RemoteError(remote_trace)
          if remote_error.exception_name == 'RuntimeError':
              conn.logger.error(remote_error.exception_line)
          else:
              for tb_line in remote_trace.split('\n'):
                  conn.logger.error(tb_line)
          if stop_on_error:
              raise RuntimeError(
                  'Failed to execute command: %s' % ' '.join(command)
              )
      if exit:
          conn.exit()