--- lbbs/src/main.c 2005/05/07 09:28:12 1.14 +++ lbbs/src/main.c 2005/06/23 16:43:21 1.17 @@ -21,6 +21,7 @@ #include "menu.h" #include #include +#include #include void @@ -117,7 +118,7 @@ main (int argc, char *argv[]) //Initialize log strcpy (app_temp_dir, "/tmp/lbbs/"); - mkdir (app_temp_dir, 0750); + mkdir (app_temp_dir, 0777); strcpy (log_dir, app_home_dir); strcat (log_dir, "log/"); strcpy (file_log_std, log_dir); @@ -146,10 +147,23 @@ main (int argc, char *argv[]) exit (-3); //Set signal handler + signal (SIGCHLD, child_exit); + signal (SIGTERM, system_exit); signal (SIG_RELOAD_MENU, reload_bbs_menu); //Initialize socket server net_server (BBS_address, BBS_port); + //Wait for child process exit + while (SYS_child_process_count > 0) + { + log_std ("."); + sleep(1); + } + + //Cleanup + unload_menu (&bbs_menu); + rmdir (app_temp_dir); + return 0; }