def _register_handlers()

in lerobot/common/utils/process.py [0:0]


    def _register_handlers(self):
        """Attach the internal _signal_handler to a subset of POSIX signals."""

        def _signal_handler(signum, frame):
            pid_str = ""
            if self._display_pid:
                pid_str = f"[PID: {os.getpid()}]"
            logging.info(f"{pid_str} Shutdown signal {signum} received. Cleaning up…")
            self.shutdown_event.set()
            self._counter += 1

            # On a second Ctrl-C (or any supported signal) force the exit to
            # mimic the previous behaviour while giving the caller one chance to
            # shutdown gracefully.
            # TODO: Investigate if we need it later
            if self._counter > 1:
                logging.info("Force shutdown")
                sys.exit(1)

        for sig_name in self._SUPPORTED_SIGNALS:
            sig = getattr(signal, sig_name, None)
            if sig is None:
                # The signal is not available on this platform (Windows for
                # instance does not provide SIGHUP, SIGQUIT…). Skip it.
                continue
            try:
                signal.signal(sig, _signal_handler)
            except (ValueError, OSError):  # pragma: no cover – unlikely but safe
                # Signal not supported or we are in a non-main thread.
                continue