code: def find_processes_by_args(args):
      """Finds a process with the specified command-line arguments.
  
      Only processes for the current user will be returned.
  
      Args:
          args (list[str]): a list of arguments, in the order to search for
  
      Returns:
          generator of psutil.Process objects
      """
      if not isinstance(args, list):
          raise TypeError("args must be list")
      if not args:
          raise ValueError("empty search")
  
      current_username = psutil.Process().username()
      for p in psutil.process_iter(["cmdline", "username"]):
          try:
              if (
                  p.info["username"] == current_username
                  and p.info["cmdline"]
              ):
                  cmdline = p.info["cmdline"]
                  for i in range(len(cmdline) - len(args) + 1):
                      if cmdline[i : i + len(args)] == args:
                          if not _is_wrapper_process(p):
                              yield p
          except (psutil.NoSuchProcess, psutil.AccessDenied):
              pass
  
file_path: fiftyone/fiftyone/service/util.py
imports: import psutil
  from fiftyone.service.ipc import send_request
label_desc: Use image node_id 4 for calling a global function with example usage: find_processes_by_args(args) without return types