main(int argc, char **argv) { int c=0, FatherStatus; init_signals(); while (1) { int option_index = 0; c = getopt(argc, argv, "n:"); if (c == -1) break; switch (c) { case 'n': OPTIONS.NCORES=atoi(optarg); break; default: usage(argv[0]); } } printf("Number of children to be started : %d\n",(int)OPTIONS.NCORES); start_children(Index,OPTIONS.NCORES); handle_sigterm(); wait(&FatherStatus); }
void check_signals(void) { if (mf_sigchld) handle_sigchld(); if (mf_sigalrm) handle_sigalrm(); if (mf_sigint) handle_sigint(); if (mf_sigquit) handle_sigquit(); if (mf_sigterm) handle_sigterm(); if (mf_sigpipe) handle_sigpipe(); if (mf_sigusr1) handle_sigusr1(); if (mf_sigusr2) handle_sigusr2(); if (mf_sighup) handle_sighup(); if (mf_stupid) { syslog(LOG_ERR,"set a signal handler,but forgot to write code to handle it"); mf_stupid = 0; } }