code: def register_signal_and_exception_hooks(self):
      if self._orig_exc_handler is None:
          self._orig_exc_handler = sys.excepthook
  
      sys.excepthook = self.exc_handler
  
      if not self._org_handlers:
          if sys.platform == "win32":
              catch_signals = [
                  signal.SIGINT,
                  signal.SIGTERM,
                  signal.SIGSEGV,
                  signal.SIGABRT,
                  signal.SIGILL,
                  signal.SIGFPE,
              ]
          else:
              catch_signals = [
                  signal.SIGINT,
                  signal.SIGTERM,
                  signal.SIGSEGV,
                  signal.SIGABRT,
                  signal.SIGILL,
                  signal.SIGFPE,
                  signal.SIGQUIT,
              ]
          for c in catch_signals:
              # noinspection PyBroadException
              try:
                  self._org_handlers[c] = signal.getsignal(c)
                  signal.signal(c, self.signal_handler)
              except Exception:
                  pass
  
file_path: clearml/clearml/utilities/process/exit_hooks.py
imports: import atexit
  import os
  import signal
  import sys
  import six
  from ...logger import Logger
label_desc: Use image node_id 4 for calling the ExitHooks obj's underlying member method code with example usage: obj.register_signal_and_exception_hooks() without return types