class f2bPublisherDaemon(daemon): def __sigTERMhandler(self,signum,frame): syslog.syslog("fail2ban-zmq-tools Publisher: Caught signal %d. Initiating shutdown..." % signum) self.quit() def run(self): syslog.syslog("fail2ban-zmq-tools Publisher starting") signal.signal(signal.SIGTERM,self.__sigTERMhandler) signal.signal(signal.SIGINT,self.__sigTERMhandler) self.publisher = Publisher(publisherconfig=publisherconfig) self.publisher.start() syslog.syslog("fail2ban-zmq-tools Publisher running. Main process waiting for termination signal. Threads working.") signal.pause() syslog.syslog("fail2ban-zmq-tools Publisher exiting.") def quit(self): signal.signal(signal.SIGTERM,signal.SIG_IGN) syslog.syslog("fail2ban-zmq-tools Publisher: Stopping threads...") self.publisher.join() syslog.syslog("fail2ban-zmq-tools Publisher says Bye")
import sys,signal import time import os import random def sigint_handler(signum,frame): print("main-thread exit") global publish publish.stop() sys.exit() if __name__ == '__main__': signal.signal(signal.SIGINT, sigint_handler) publish = Publisher("tcp://127.0.0.1:12347") publish.start() path_exp = os.path.expanduser('../samples') classes = [path for path in os.listdir(path_exp) \ if os.path.isdir(os.path.join(path_exp, path))] classes.sort() nrof_classes = len(classes) while True: i = random.randint(0,nrof_classes-1) class_name = classes[i] facedir = os.path.join(path_exp, class_name) publish.yolomsg.InsertYoloMsg(facedir) time.sleep(1) publish.join()