def METHOD_NAME():
    """
    Main runner function for the daemon process. It sets up our queue for incoming jobs
    (processing any json files that were saved while the daemon wasn't running), and
    then kicks off WatchDog to monitor for new files in the queue directory.
    """
    if pwd.getpwuid(os.getuid()).pw_name != DAEMON_USER:
        raise SystemExit('ERROR! This script must be run by the submitty daemon user!')
    logMessage("")
    logMessage("(RE-)STARTING DAEMON JOBS HANDLER")
    killStaleDaemonJobs()
    os.chdir(str(QUEUE_DIR))
    queue = multiprocessing.Queue()
    for entry in QUEUE_DIR.iterdir():
        if entry.is_file():
            if entry.name.startswith('PROCESSING_'):
                cleanup_job(entry.name)
                name = entry.name.split('PROCESSING_')[1]
            else:
                name = entry.name
            queue.put(name)
    logMessage(f"initial queue size {queue.qsize()}")
    observer = Observer()
    observer.schedule(NewFileHandler(queue), str(QUEUE_DIR))
    observer.start()
    pool = multiprocessing.Pool(NUMBER_OF_DAEMON_JOBS_WORKERS, process_queue, (queue, ))
    try:
        while True:
            # print("current queue size ", queue.qsize())
            time.sleep(1)
    finally:
        pool.terminate()
        observer.stop()
        observer.join()
        pool.join()