From df78575206f31d4765d0ca2706024d0462329b6e Mon Sep 17 00:00:00 2001 From: David Date: Sat, 13 Dec 2025 16:23:42 -0600 Subject: [PATCH] feat: (headless) add Ctrl+C try-except --- src/headless_pkg/src/headless_node.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/headless_pkg/src/headless_node.py b/src/headless_pkg/src/headless_node.py index aba1676..bb02a2d 100755 --- a/src/headless_pkg/src/headless_node.py +++ b/src/headless_pkg/src/headless_node.py @@ -1,5 +1,6 @@ import rclpy from rclpy.node import Node +from rclpy.executors import ExternalShutdownException from rclpy import qos from rclpy.duration import Duration @@ -330,10 +331,15 @@ def is_user_in_group(group_name: str) -> bool: def main(args=None): - rclpy.init(args=args) - node = Headless() - rclpy.spin(node) - rclpy.shutdown() + try: + rclpy.init(args=args) + + node = Headless() + rclpy.spin(node) + except (KeyboardInterrupt, ExternalShutdownException): + print("Caught shutdown signal. Exiting...") + finally: + rclpy.shutdown() if __name__ == "__main__":