class f2bSubscriberDaemon(daemon): def __sigTERMhandler(self,signum,frame): syslog.syslog("fail2ban-zmq-tools Subscriber: Caught signal %d. Initiating shutdown..." % signum) self.quit() def run(self): syslog.syslog("fail2ban-zmq-tools Subscriber starting") signal.signal(signal.SIGTERM,self.__sigTERMhandler) signal.signal(signal.SIGINT,self.__sigTERMhandler) self.subscriber = Subscriber(subscriberconfig=subscriberconfig) self.subscriber.start() syslog.syslog("fail2ban-zmq-tools Subscriber running. Main process waiting for termination signal. Threads working.") signal.pause() syslog.syslog("fail2ban-zmq-tools Subscriber exiting.") def quit(self): signal.signal(signal.SIGTERM,signal.SIG_IGN) syslog.syslog("fail2ban-zmq-tools Subscriber: Stopping threads...") self.subscriber.join()
class f2bSubscriberDaemon(daemon): def __sigTERMhandler(self, signum, frame): syslog.syslog("fail2ban-zmq-tools Subscriber: Caught signal %d.\ Initiating shutdown..." % signum) self.quit() def run(self): syslog.syslog("fail2ban-zmq-tools Subscriber starting") signal.signal(signal.SIGTERM, self.__sigTERMhandler) signal.signal(signal.SIGINT, self.__sigTERMhandler) self.subscriber = Subscriber(subscriberconfig=subscriberconfig) self.subscriber.start() syslog.syslog("fail2ban-zmq-tools Subscriber running.\ Main process waiting for termination signal.\ Threads working.") signal.pause() syslog.syslog("fail2ban-zmq-tools Subscriber exiting.") def quit(self): signal.signal(signal.SIGTERM, signal.SIG_IGN) syslog.syslog("fail2ban-zmq-tools Subscriber: Stopping threads...") self.subscriber.join()
if __name__ == '__main__': import time from subscriber import Subscriber vehicle = Vehicle(STEERING_GPIO, THROTTLE_GPIO, FREQUENCY, MIN_DUTY, IDLE_DUTY, MAX_DUTY, TIMEOUT) vehicle.start() subscriber = Subscriber( port=13337, timeout=TIMEOUT * 2, ) subscriber.start() subscriber.set_receive_callback(vehicle.add_state_event) while 1: try: time.sleep(1) except KeyboardInterrupt: break subscriber.stop() subscriber.join() print(repr(vehicle)) vehicle.stop() vehicle.join()