diff --git a/src/Backtrace.h b/src/Backtrace.h index ab3d419..356f7ad 100644 --- a/src/Backtrace.h +++ b/src/Backtrace.h @@ -12,10 +12,10 @@ #if _PREDIXY_BACKTRACE_ #include -inline void traceInfo() +inline void traceInfo(int sig) { #define Size 128 - logError("predixy backtrace"); + logError("predixy backtrace(%d)", sig); void* buf[Size]; int num = ::backtrace(buf, Size); int fd = -1; @@ -32,9 +32,9 @@ inline void traceInfo() #else -inline void traceInfo() +inline void traceInfo(int sig) { - logError("predixy backtrace, but current system unspport backtrace"); + logError("predixy backtrace(%d), but current system unspport backtrace", sig); } #endif diff --git a/src/Proxy.cpp b/src/Proxy.cpp index c260565..eb42f7b 100644 --- a/src/Proxy.cpp +++ b/src/Proxy.cpp @@ -27,7 +27,7 @@ static bool Stop = false; static void abortHandler(int sig) { if (!Abort) { - traceInfo(); + traceInfo(sig); } Abort = true; if (!Running) { @@ -65,6 +65,7 @@ Proxy::~Proxy() bool Proxy::init(int argc, char* argv[]) { + signal(SIGHUP, SIG_IGN); signal(SIGPIPE, SIG_IGN); signal(SIGFPE, abortHandler); signal(SIGILL, abortHandler); @@ -72,7 +73,6 @@ bool Proxy::init(int argc, char* argv[]) signal(SIGABRT, abortHandler); signal(SIGBUS, abortHandler); signal(SIGQUIT, abortHandler); - signal(SIGHUP, abortHandler); signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler);