void set_signals(void) { /* we don't care about SIGPIPE, we notice it in select() and write() */ our_signal(SIGPIPE, SIG_IGN); /* didn't manage to lose that control tty, did we? Ignore it anyway. */ our_signal(SIGHUP, SIG_IGN); }
void set_dumper_signals(void) { our_signal(SIGPIPE, SIG_IGN); /* Ignore Blocked Pipe */ our_signal(SIGHUP, SIG_IGN); /* Ignore Terminal Hangup */ our_signal(SIGCHLD, SIG_IGN); /* Ignore Child termination */ our_signal(SIGFPE, SIG_IGN); /* Ignore FP exceptions */ our_signal(SIGUSR1, SIG_IGN); /* Ignore SIGUSR1 */ our_signal(SIGUSR2, SIG_IGN); /* Ignore SIGUSR2 */ our_signal(SIGINT, SIG_DFL); /* Take Interrupt signal and die! */ our_signal(SIGTERM, SIG_DFL); /* Take Terminate signal and die! */ our_signal(SIGSEGV, SIG_DFL); /* Take Segfault and die! */ #ifdef SIGTRAP our_signal(SIGTRAP, SIG_DFL); #endif #ifdef SIGIOT our_signal(SIGIOT, SIG_DFL); #endif #ifdef SIGEMT our_signal(SIGEMT, SIG_DFL); #endif #ifdef SIGBUS our_signal(SIGBUS, SIG_DFL); #endif #ifdef SIGSYS our_signal(SIGSYS, SIG_DFL); #endif #ifdef SIGXCPU our_signal(SIGXCPU, SIG_IGN); /* CPU usage limit exceeded */ #endif #ifdef SIGXFSZ our_signal(SIGXFSZ, SIG_IGN); /* Exceeded file size limit */ #endif #ifdef SIGVTALRM our_signal(SIGVTALRM, SIG_DFL); #endif }
static void set_sigs_intern(int bail) { /* we don't care about SIGPIPE, we notice it in select() and write() */ our_signal(SIGPIPE, SET_IGN); /* didn't manage to lose that control tty, did we? Ignore it anyway. */ our_signal(SIGHUP, SET_IGN); #ifdef SPAWN_HOST_RESOLVER /* resolver's exited. Better clean up the mess our child leaves */ our_signal(SIGCHLD, bail ? SIG_DFL : sig_reap); #endif /* standard termination signals */ our_signal(SIGINT, SET_BAIL); our_signal(SIGTERM, SET_BAIL); /* catch these because we might as well */ /* our_signal(SIGQUIT, SET_BAIL); */ #ifdef SIGTRAP our_signal(SIGTRAP, SET_IGN); #endif #ifdef SIGIOT our_signal(SIGIOT, SET_BAIL); #endif #ifdef SIGEMT our_signal(SIGEMT, SET_BAIL); #endif #ifdef SIGBUS our_signal(SIGBUS, SET_BAIL); #endif #ifdef SIGSYS our_signal(SIGSYS, SET_BAIL); #endif our_signal(SIGFPE, SET_BAIL); our_signal(SIGSEGV, SET_BAIL); our_signal(SIGTERM, bail ? SET_BAIL : sig_shutdown); #ifdef SIGXCPU our_signal(SIGXCPU, SET_BAIL); #endif #ifdef SIGXFSZ our_signal(SIGXFSZ, SET_BAIL); #endif #ifdef SIGVTALRM our_signal(SIGVTALRM, SET_BAIL); #endif #ifdef SIGEMERG /* Clean shutdown signal (may be used with UPS software when power goes down...) */ our_signal(SIGUSR2, sig_emerg); #else our_signal(SIGUSR2, SET_BAIL); #endif /* status dumper (predates "WHO" command) */ our_signal(SIGUSR1, bail ? SIG_DFL : sig_dump_status); }
static void set_sigs_intern(int bail) { /* we don't care about SIGPIPE, we notice it in select() and write() */ our_signal(SIGPIPE, SET_IGN); /* didn't manage to lose that control tty, did we? Ignore it anyway. */ our_signal(SIGHUP, SET_IGN); /* resolver's exited. Better clean up the mess our child leaves */ our_signal(SIGCHLD, bail ? SIG_DFL : sig_reap_resolver); #ifdef SIGTRAP our_signal(SIGTRAP, SET_BAIL); #endif #ifdef SIGIOT /* our_signal(SIGIOT, SET_BAIL); */ /* This is SIGABRT, want cores from it. CrT */ #endif #ifdef SIGEMT our_signal(SIGEMT, SET_BAIL); #endif #ifdef SIGBUS our_signal(SIGBUS, SET_BAIL); #endif #ifdef SIGSYS our_signal(SIGSYS, SET_BAIL); #endif our_signal(SIGFPE, SET_BAIL); our_signal(SIGSEGV, SET_BAIL); our_signal(SIGTERM, SET_BAIL); #ifdef SIGXCPU our_signal(SIGXCPU, SET_BAIL); #endif #ifdef SIGXFSZ our_signal(SIGXFSZ, SET_BAIL); #endif #ifdef SIGVTALRM our_signal(SIGVTALRM, SET_BAIL); #endif our_signal(SIGUSR1, SET_SHUT); our_signal(SIGUSR2, SET_SHUT); /* standard termination signals */ our_signal(SIGINT, SET_SHUT); our_signal(SIGTERM, SET_SHUT); /* catch these because we might as well */ our_signal(SIGQUIT, SET_SHUT); }