From 1e712c7e0320d48080cf39c6aa328492da98a83e Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 12 Sep 2011 16:14:30 -0500 Subject: [PATCH] only reap sigchld when in fork mode for system --- src/switch_core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/switch_core.c b/src/switch_core.c index 4edf0dc576..c4ce502721 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -1914,7 +1914,11 @@ SWITCH_DECLARE(void) switch_core_set_signal_handlers(void) /* set signal handlers */ signal(SIGINT, SIG_IGN); #ifndef WIN32 - signal(SIGCHLD, handle_SIGCHLD); + if (switch_test_flag((&runtime), SCF_THREADED_SYSTEM_EXEC)) { + signal(SIGCHLD, SIG_DFL); + } else { + signal(SIGCHLD, handle_SIGCHLD); + } #endif #ifdef SIGPIPE signal(SIGPIPE, SIG_IGN); @@ -2293,6 +2297,7 @@ static void *SWITCH_THREAD_FUNC system_thread(switch_thread_t *thread, void *obj #endif sth->ret = system(sth->cmd); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "WTF %d %s\n", sth->ret, strerror(errno)); #if 0 #if defined(HAVE_SETRLIMIT) && !defined(__FreeBSD__)