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")
示例#2
0
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()