class_docstr: Parent class for all Unix browsers with remote functionality.
class_docstr_tok: ["Parent","class","for","all","Unix","browsers","with","remote","functionality","."]
code: def _invoke(self, args, remote, autoraise, url=None):
      raise_opt = []
      if remote and self.raise_opts:
          # use autoraise argument only for remote invocation
          autoraise = int(autoraise)
          opt = self.raise_opts[autoraise]
          if opt:
              raise_opt = [opt]
  
      cmdline = [self.name] + raise_opt + args
  
      if remote or self.background:
          inout = subprocess.DEVNULL
      else:
          # for TTY browsers, we need stdin/out
          inout = None
      p = subprocess.Popen(
          cmdline,
          close_fds=True,
          stdin=inout,
          stdout=(self.redirect_stdout and inout or None),
          stderr=inout,
          start_new_session=True,
      )
      if remote:
          # wait at most five seconds. If the subprocess is not finished, the
          # remote invocation has (hopefully) started a new instance.
          try:
              rc = p.wait(5)
              # if remote call failed, open() will try direct invocation
              return not rc
          except subprocess.TimeoutExpired:
              return True
      elif self.background:
          if p.poll() is None:
              return True
          else:
              return False
      else:
          return not p.wait()
  
imports: import os
  import shlex
  import shutil
  import sys
  import subprocess
  import threading
  import warnings
label_desc: Use image node_id 1 for calling the UnixBrowser obj's underlying member method code with example usage: obj._invoke(args, remote, autoraise, url) and returns: unknown, unknown, True, True, False