if __name__ == '__main__': logger = logging.getLogger() logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler()) hostname = socket.gethostname() z = ZOCP("zinotify@{0}".format(hostname)) z.register_string("watchdir", "/tmp", "rw") z.register_string("file", "", 're') z.start() # setup inotify i = pyinotify.INotifyWrapper.create() ifd = i._inotify_init() # add a directory to watch iwd = i.inotify_add_watch( ifd, z.get_value('watchdir'), pyinotify.IN_DELETE ) zpoller = zmq.Poller() zpoller.register(ifd, zmq.POLLIN) zpoller.register(z.inbox, zmq.POLLIN) def handle_modified(peer, name, data, *args, **kwargs): global iwd global ifd print(data, name, "watchdir" in data.keys()) if "watchdir" in data.keys(): logger.debug("watchdir modified to {1} by {0}".format(peer, data)) # stop current watch i.inotify_rm_watch(ifd, iwd) # start new watch iwd = i.inotify_add_watch( ifd, z.get_value('watchdir'), pyinotify.IN_DELETE )