def signal_handler(self, *args, **kwargs): global running RosThread._signal_handler(*args, **kwargs) TopicMonitor._signal_handler(*args, **kwargs) print("Shutting Down") running = False
class TopicPrinter: def __init__(self, topic): self.topic = topic def callback(self, data): print("%s:%s" % (self.topic, str(data))) def subscriber(topic, datatype): obj = TopicPrinter(topic) RosThread.subscribe(topic, datatype, obj.callback) def signal_handler(self, *args, **kwargs): global running RosThread._signal_handler(*args, **kwargs) TopicMonitor._signal_handler(*args, **kwargs) print("Shutting Down") running = False TopicMonitor.add_callback(subscriber) signal.signal(signal.SIGTERM, signal_handler) # Ctrl + C # todo does not work signal.signal(signal.SIGINT, signal_handler) while running == True: time.sleep(1)