--- lbbs/src/main.c 2025/05/07 05:35:01 1.24 +++ lbbs/src/main.c 2025/05/09 11:21:11 1.27 @@ -139,32 +139,30 @@ int main(int argc, char *argv[]) } // Load configuration - if (load_conf("conf/bbsd.conf") < 0) + if (load_conf(CONF_BBSD) < 0) + { exit(-2); + } // Load menus - if (load_menu(&bbs_menu, "conf/menu.conf") < 0) + if (load_menu(&bbs_menu, CONF_MENU) < 0) + { + unload_menu(&bbs_menu); exit(-3); + } // Set signal handler - signal(SIGCHLD, child_exit); - signal(SIGTERM, system_exit); - signal(SIG_RELOAD_MENU, reload_bbs_menu); + signal(SIGHUP, sig_hup_handler); + signal(SIGCHLD, sig_chld_handler); + signal(SIGTERM, sig_term_handler); // Initialize socket server net_server(BBS_address, BBS_port); - // Wait for child process exit - while (SYS_child_process_count > 0) - { - log_std("Waiting for %d child process to exit\n", SYS_child_process_count); - sleep(1); - } - // Cleanup unload_menu(&bbs_menu); - log_std("Main process exit\n"); + log_std("Main process exit normally\n"); return 0; }