Commit 801f115f28ebaabda2311d26fe88afe4d055512f

Authored by Georg Hopp
1 parent c6635e39

simply copy signal handling code from gameserver project

  1 +#ifndef __SIGNAL_HANDLING_H__
  2 +#define __SIGNAL_HANDLING_H__
  3 +
  4 +extern volatile int doShutdown;
  5 +
  6 +void terminate(int signum);
  7 +void init_signals(void);
  8 +
  9 +#endif // __SIGNAL_HANDLING_H__
  10 +
... ...
  1 +#include <signal.h> /* for signal() and signal names */
  2 +
  3 +#include "include/monitor.h"
  4 +
  5 +volatile int doShutdown;
  6 +
  7 +void terminate(int signum)
  8 +{
  9 + signal(signum, SIG_IGN);
  10 + syslogMonitor(LOG_INFO, MON_CRITICAL, "signals",
  11 + "caugth deadly signal %d", signum);
  12 + syslogMonitor(LOG_INFO, MON_FAILURE, "signals",
  13 + "caugth deadly signal %d - service terminated", signum);
  14 + doShutdown = 1;
  15 +}
  16 +
  17 +void init_signals(void)
  18 +{
  19 + signal(SIGTERM, terminate);
  20 + signal(SIGHUP, SIG_IGN);
  21 + signal(SIGINT, terminate);
  22 + signal(SIGQUIT, terminate);
  23 + signal(SIGABRT, terminate);
  24 + signal(SIGALRM, SIG_IGN);
  25 + signal(SIGURG, SIG_IGN);
  26 +
  27 + signal(SIGPIPE, SIG_IGN);
  28 +}
... ...
Please register or login to post a comment