# Get cluster config try: cluster_config = read_config() except WazuhException as e: clean_exit(reason=str(e), error=True) if not cluster_config or cluster_config['disabled'] == 'yes': clean_exit(reason="Cluster disabled", error=True) # Drop privileges to ossec if not args.r: setgid(common.ossec_gid) seteuid(common.ossec_uid) # Creating pid file create_pid("wazuh-clusterd", getpid()) # Validate config try: check_cluster_config(cluster_config) except WazuhException as e: clean_exit(reason="Invalid configuration: '{0}'".format(str(e)), error=True) # Clean all temporary files before starting clean_up() # Main try: if cluster_config['node_type'] == "master":
main_logger.error(e) sys.exit(1) if args.test_config: sys.exit(0) # clean cluster.clean_up() # Foreground/Daemon if not args.foreground: pyDaemonModule.pyDaemon() # Drop privileges to ossec if not args.root: os.setgid(common.ossec_gid) os.setuid(common.ossec_uid) pyDaemonModule.create_pid('wazuh-clusterd', os.getpid()) main_function = master_main if cluster_configuration[ 'node_type'] == 'master' else worker_main try: asyncio.run( main_function(args, cluster_configuration, cluster_items, main_logger)) except KeyboardInterrupt: main_logger.info("SIGINT received. Bye!") except Exception as e: main_logger.error(f"Unhandled exception: {e}")