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__":