From: Michal Voců Date: Mon, 21 Mar 2011 11:52:25 +0000 (+0000) Subject: move sigmask and handler settings after globus init X-Git-Tag: gridsite-core_R_1_7_12~6 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=6fbb2d72d7bfc02028cf4fce10b7947c7b9365a6;p=jra1mw.git move sigmask and handler settings after globus init --- diff --git a/org.glite.lb.logger/src/logd.c b/org.glite.lb.logger/src/logd.c index e93c577..6fc9fef 100644 --- a/org.glite.lb.logger/src/logd.c +++ b/org.glite.lb.logger/src/logd.c @@ -352,6 +352,7 @@ int main(int argc, char *argv[]) int childpid; int opt; FILE *pidf; + sigset_t mask; int listener_fd; int client_fd; @@ -436,16 +437,6 @@ This is LocalLogger, part of Workload Management System in EU DataGrid & EGEE.\n if (CAcert_dir) setenv("X509_CERT_DIR", CAcert_dir, 1); - /* initialize signal handling */ - if (mysignal(SIGUSR1, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGUSR2, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGPIPE, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGHUP, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGINT, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGQUIT, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGTERM, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - if (mysignal(SIGCHLD, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } - #ifdef LB_PERF glite_wll_perftest_init(NULL, NULL, NULL, NULL, 0); #endif @@ -465,6 +456,27 @@ This is LocalLogger, part of Workload Management System in EU DataGrid & EGEE.\n glite_common_log(LOG_CATEGORY_CONTROL,LOG_PRIORITY_INFO,"Server running without certificate\n"); } + /* initialize signal handling */ + if (mysignal(SIGUSR1, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGUSR2, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGPIPE, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGHUP, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGINT, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGQUIT, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGTERM, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + if (mysignal(SIGCHLD, handle_signal) == SIG_ERR) { perror("signal"); exit(1); } + + sigemptyset(&mask); + sigaddset(&mask, SIGUSR1); + sigaddset(&mask, SIGUSR2); + sigaddset(&mask, SIGPIPE); + sigaddset(&mask, SIGHUP); + sigaddset(&mask, SIGINT); + sigaddset(&mask, SIGQUIT); + sigaddset(&mask, SIGTERM); + sigaddset(&mask, SIGCHLD); + sigprocmask(SIG_UNBLOCK, &mask, NULL); + /* do listen */ glite_common_log(LOG_CATEGORY_CONTROL,LOG_PRIORITY_INFO,"Listening on port %d\n",port); listener_fd = do_listen(port);