void _logeater_handle_signal_if_needed(void)
{
        int signo;

        if ( ! got_signal )
                return;

        signo = got_signal;
        got_signal = 0;

#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
        if ( signo == SIGQUIT || signo == SIGUSR1 ) {
                handle_sigquit();
                return;
        }
#endif

        server_close();

        if ( config.logeater_client )
                requiem_client_destroy(config.logeater_client, REQUIEM_CLIENT_EXIT_STATUS_FAILURE);

        requiem_deinit();

#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
        if ( signo == SIGHUP ) {
                requiem_log(REQUIEM_LOG_WARN, "signal %d received, restarting (%s).\n", signo, get_restart_string());
                handle_sighup();
        }
#endif

        requiem_log(REQUIEM_LOG_WARN, "signal %d received, terminating requiem-logeater.\n", signo);
        exit(2);
}
示例#2
0
void _lml_handle_signal_if_needed(void)
{
        int signo;

        if ( ! got_signal )
                return;

        signo = got_signal;
        got_signal = 0;

#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
        if ( signo == SIGQUIT || signo == SIGUSR1 ) {
                handle_sigquit();
                return;
        }
#endif

        server_close();

        if ( config.lml_client )
                prelude_client_destroy(config.lml_client, PRELUDE_CLIENT_EXIT_STATUS_FAILURE);

        prelude_deinit();

#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
        if ( signo == SIGHUP ) {
                prelude_log(PRELUDE_LOG_WARN, "signal %d received, restarting (%s).\n", signo, get_restart_string());
                handle_sighup();
        }
#endif

        prelude_log(PRELUDE_LOG_WARN, "signal %d received, terminating prelude-lml.\n", signo);
        exit(2);
}
示例#3
0
文件: signals.c 项目: spc476/x-grey
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;
  }
}