code: def start_proc_mask_signal(proc):
      """
      Start process(es) with SIGINT ignored.
  
      Args:
          proc: (mp.Process or list)
  
      Note:
          The signal mask is only applied when called from main thread.
      """
      if not isinstance(proc, list):
          proc = [proc]
  
      with mask_sigint():
          for p in proc:
              if isinstance(p, mp.Process):
                  if (
                      sys.version_info < (3, 4)
                      or mp.get_start_method() == "fork"
                  ):
                      log_once(
                          """
  Starting a process with 'fork' method is efficient but not safe and may cause deadlock or crash.
  Use 'forkserver' or 'spawn' method instead if you run into such issues.
  See https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods on how to set them.
  """.replace(
                              "\n", ""
                          ),
                          "warn",
                      )  # noqa
              p.start()
  
imports: import sys
  import atexit
  import bisect
  import multiprocessing
  import platform
  import signal
  import threading
  import weakref
  from contextlib import contextmanager
  import six
  from six.moves import queue
  import subprocess
  from .None import logger
  from .argtools import log_once
label_desc: Use image node_id 5 for calling a global function with example usage: start_proc_mask_signal(proc) without return types