From 074e3c2fb425f6d94936443e292f9f4bd2bec608 Mon Sep 17 00:00:00 2001 From: Ryan Bloom Date: Mon, 10 Jul 2000 18:21:24 +0000 Subject: [PATCH] Move process_child_status to mpm_common.c. This requires re-naming it to ap_process_child_status and opening up ap_coredump_dir. I have modified all of the MPMs that I saw using this function to work with this patch. Sorry if I broke anybody. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85808 13f79535-47bb-0310-9956-ffa450edef68 --- include/mpm_common.h | 1 + server/mpm/beos/beos.c | 57 ++------------------------ server/mpm/beos/mpm.h | 2 +- server/mpm/dexter/dexter.c | 56 +------------------------ server/mpm/dexter/mpm.h | 2 + server/mpm/mpmt_beos/mpm.h | 1 + server/mpm/mpmt_beos/mpmt_beos.c | 55 +------------------------ server/mpm/mpmt_pthread/mpm.h | 1 + server/mpm/mpmt_pthread/mpmt_pthread.c | 56 +------------------------ server/mpm/prefork/mpm.h | 1 + server/mpm/prefork/prefork.c | 57 +------------------------- server/mpm/spmt_os2/mpm.h | 2 + server/mpm/spmt_os2/spmt_os2.c | 56 +------------------------ server/mpm_common.c | 52 +++++++++++++++++++++++ 14 files changed, 74 insertions(+), 325 deletions(-) diff --git a/include/mpm_common.h b/include/mpm_common.h index 6611c02a5c..148b807f9f 100644 --- a/include/mpm_common.h +++ b/include/mpm_common.h @@ -76,6 +76,7 @@ extern "C" { void ap_reclaim_child_processes(int terminate); void ap_wait_or_timeout(ap_wait_t *status, ap_proc_t *ret, ap_pool_t *p); +void ap_process_child_status(ap_proc_t *pid, ap_wait_t status); #define AP_MPM_HARD_LIMITS_FILE "src/" APACHE_MPM_DIR "/mpm_default.h" diff --git a/server/mpm/beos/beos.c b/server/mpm/beos/beos.c index c4c7041f42..13abfa0731 100644 --- a/server/mpm/beos/beos.c +++ b/server/mpm/beos/beos.c @@ -1,4 +1,4 @@ -/* ==================================================================== +ap_/* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2000 The Apache Software Foundation. All rights @@ -126,7 +126,7 @@ struct ap_ctable ap_child_table[HARD_SERVER_LIMIT]; */ int ap_max_child_assigned = -1; int ap_max_threads_limit = -1; -static char ap_coredump_dir[MAX_STRING_LEN]; +char ap_coredump_dir[MAX_STRING_LEN]; static port_id port_of_death; /* shared http_main globals... */ @@ -289,57 +289,6 @@ static void set_signals(void) ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)"); } -static void process_child_status(int pid, ap_wait_t status) -{ - /* Child died... if it died due to a fatal error, - * we should simply bail out. - */ - if ((WIFEXITED(status)) && - WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf, - "Child %d returned a Fatal error... \n" - "Apache is exiting!", - pid); - exit(APEXIT_CHILDFATAL); - } - if (WIFSIGNALED(status)) { - switch (WTERMSIG(status)) { - case SIGTERM: - case SIGHUP: - case SIGUSR1: - case SIGKILL: - break; - default: -#ifdef SYS_SIGLIST -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %d exit signal %s (%d), " - "possible coredump in %s", - pid, (WTERMSIG(status) >= NumSIG) ? "" : - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), - ap_coredump_dir); - } - else { -#endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %d exit signal %s (%d)", pid, - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); -#ifdef WCOREDUMP - } -#endif -#else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %d exit signal %d", - pid, WTERMSIG(status)); -#endif - } - } -} - static int setup_listeners(server_rec *s) { ap_listen_rec *lr; @@ -664,7 +613,7 @@ static void server_main_loop(int remaining_threads_to_start) ap_wait_or_timeout(&status, &pid, pconf); if (pid.pid >= 0) { - process_child_status(pid.pid, status); + ap_process_child_status(pid.pid, status); /* non-fatal death... note that it's gone in the scoreboard. */ child_slot = -1; for (i = 0; i < ap_max_child_assigned; ++i) { diff --git a/server/mpm/beos/mpm.h b/server/mpm/beos/mpm.h index af4e237777..e792f0cd3d 100644 --- a/server/mpm/beos/mpm.h +++ b/server/mpm/beos/mpm.h @@ -74,6 +74,6 @@ typedef struct ap_ctable{ extern ap_ctable ap_child_table[HARD_SERVER_LIMIT]; extern server_rec *ap_server_conf; - +extern char ap_coredump_dir[MAX_STRING_LEN]; #endif /* APACHE_MPM_BEOS_H */ diff --git a/server/mpm/dexter/dexter.c b/server/mpm/dexter/dexter.c index 1faf0bca4a..345891a372 100644 --- a/server/mpm/dexter/dexter.c +++ b/server/mpm/dexter/dexter.c @@ -118,7 +118,7 @@ struct ap_ctable ap_child_table[HARD_SERVER_LIMIT]; */ int ap_max_daemons_limit = -1; -static char ap_coredump_dir[MAX_STRING_LEN]; +char ap_coredump_dir[MAX_STRING_LEN]; static ap_file_t *pipe_of_death_in = NULL; static ap_file_t *pipe_of_death_out = NULL; @@ -376,58 +376,6 @@ static void set_signals(void) #endif } -static void process_child_status(ap_proc_t *pid, ap_wait_t status) -{ - /* Child died... if it died due to a fatal error, - * we should simply bail out. - */ - if ((WIFEXITED(status)) && - WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf, - "Child %ld returned a Fatal error... \n" - "Apache is exiting!", - (long)pid->pid); - exit(APEXIT_CHILDFATAL); - } - if (WIFSIGNALED(status)) { - switch (WTERMSIG(status)) { - case SIGTERM: - case SIGHUP: - case SIGUSR1: - case SIGKILL: - break; - default: -#ifdef SYS_SIGLIST -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, - ap_server_conf, - "child pid %ld exit signal %s (%d), " - "possible coredump in %s", - (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" : - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), - ap_coredump_dir); - } - else { -#endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, - ap_server_conf, - "child pid %ld exit signal %s (%d)", - (long)pid->pid, - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); -#ifdef WCOREDUMP - } -#endif -#else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, - ap_server_conf, - "child pid %ld exit signal %d", - (long)pid->pid, WTERMSIG(status)); -#endif - } - } -} - static int setup_listeners(server_rec *s) { ap_listen_rec *lr; @@ -988,7 +936,7 @@ static void server_main_loop(int remaining_children_to_start) ap_wait_or_timeout(&status, &pid, pconf); if (pid.pid != -1) { - process_child_status(&pid, status); + ap_process_child_status(&pid, status); /* non-fatal death... note that it's gone in the child table and * clean out the status table. */ child_slot = -1; diff --git a/server/mpm/dexter/mpm.h b/server/mpm/dexter/mpm.h index e950de3f29..ffcccc122c 100644 --- a/server/mpm/dexter/mpm.h +++ b/server/mpm/dexter/mpm.h @@ -78,4 +78,6 @@ typedef struct ap_ctable{ extern int ap_max_daemons_limit; extern ap_ctable ap_child_table[HARD_SERVER_LIMIT]; extern server_rec *ap_server_conf; +extern char ap_coredump_dir[MAX_STRING_LEN]; + #endif /* APACHE_MPM_DEXTER_H */ diff --git a/server/mpm/mpmt_beos/mpm.h b/server/mpm/mpmt_beos/mpm.h index c2e59f1a9c..486c8d8981 100644 --- a/server/mpm/mpmt_beos/mpm.h +++ b/server/mpm/mpmt_beos/mpm.h @@ -74,5 +74,6 @@ typedef struct ap_ctable{ extern int ap_max_daemons_limit; extern ap_ctable ap_child_table[HARD_SERVER_LIMIT]; extern server_rec *ap_server_conf; +extern char ap_coredump_dir[MAX_STRING_LEN]; #endif /* APACHE_MPM_MPMT_BEOS_H */ diff --git a/server/mpm/mpmt_beos/mpmt_beos.c b/server/mpm/mpmt_beos/mpmt_beos.c index 2421bf06f6..f00ed2cf72 100644 --- a/server/mpm/mpmt_beos/mpmt_beos.c +++ b/server/mpm/mpmt_beos/mpmt_beos.c @@ -125,7 +125,7 @@ struct ap_ctable ap_child_table[HARD_SERVER_LIMIT]; * value to optimize routines that have to scan the entire scoreboard. */ int ap_max_daemons_limit = -1; -static char ap_coredump_dir[MAX_STRING_LEN]; +char ap_coredump_dir[MAX_STRING_LEN]; port_id port_of_death; /* shared http_main globals... */ @@ -277,57 +277,6 @@ static void set_signals(void) ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)"); } -static void process_child_status(int pid, ap_wait_t status) -{ - /* Child died... if it died due to a fatal error, - * we should simply bail out. - */ - if ((WIFEXITED(status)) && - WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, errno, ap_server_conf, - "Child %d returned a Fatal error... \n" - "Apache is exiting!", - pid); - exit(APEXIT_CHILDFATAL); - } - if (WIFSIGNALED(status)) { - switch (WTERMSIG(status)) { - case SIGTERM: - case SIGHUP: - case SIGUSR1: - case SIGKILL: - break; - default: -#ifdef SYS_SIGLIST -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - errno, ap_server_conf, - "child pid %d exit signal %s (%d), " - "possible coredump in %s", - pid, (WTERMSIG(status) >= NumSIG) ? "" : - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), - ap_coredump_dir); - } - else { -#endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - errno, ap_server_conf, - "child pid %d exit signal %s (%d)", pid, - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); -#ifdef WCOREDUMP - } -#endif -#else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - errno, ap_server_conf, - "child pid %d exit signal %d", - pid, WTERMSIG(status)); -#endif - } - } -} - static int setup_listeners(server_rec *s) { ap_listen_rec *lr; @@ -695,7 +644,7 @@ static void server_main_loop(int remaining_children_to_start) ap_wait_or_timeout(&status, &pid, pconf); if (pid.pid >= 0) { - process_child_status(pid.pid, status); + ap_process_child_status(pid.pid, status); /* non-fatal death... note that it's gone in the scoreboard. */ child_slot = -1; for (i = 0; i < ap_max_daemons_limit; ++i) { diff --git a/server/mpm/mpmt_pthread/mpm.h b/server/mpm/mpmt_pthread/mpm.h index c9319c03eb..ba1d08581b 100644 --- a/server/mpm/mpmt_pthread/mpm.h +++ b/server/mpm/mpmt_pthread/mpm.h @@ -71,5 +71,6 @@ extern unsigned int ap_my_pid; extern server_rec *ap_server_conf; extern scoreboard *ap_scoreboard_image; extern void clean_child_exit(int); +extern char ap_coredump_dir[MAX_STRING_LEN]; #endif /* APACHE_MPM_MPMT_PTHREAD_H */ diff --git a/server/mpm/mpmt_pthread/mpmt_pthread.c b/server/mpm/mpmt_pthread/mpmt_pthread.c index 69cdfbb2e0..287351d546 100644 --- a/server/mpm/mpmt_pthread/mpmt_pthread.c +++ b/server/mpm/mpmt_pthread/mpmt_pthread.c @@ -121,7 +121,7 @@ typedef struct { */ int ap_max_daemons_limit = -1; -static char ap_coredump_dir[MAX_STRING_LEN]; +char ap_coredump_dir[MAX_STRING_LEN]; static ap_file_t *pipe_of_death_in = NULL; static ap_file_t *pipe_of_death_out = NULL; @@ -373,58 +373,6 @@ static void set_signals(void) #endif } -static void process_child_status(ap_proc_t *pid, ap_wait_t status) -{ - /* Child died... if it died due to a fatal error, - * we should simply bail out. - */ - if ((WIFEXITED(status)) && - WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf, - "Child %ld returned a Fatal error... \n" - "Apache is exiting!", - (long)pid->pid); - exit(APEXIT_CHILDFATAL); - } - if (WIFSIGNALED(status)) { - switch (WTERMSIG(status)) { - case SIGTERM: - case SIGHUP: - case SIGUSR1: - case SIGKILL: - break; - default: -#ifdef SYS_SIGLIST -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %ld exit signal %s (%d), " - "possible coredump in %s", - (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" : - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), - ap_coredump_dir); - } - else { -#endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %ld exit signal %s (%d)", - (long)pid->pid, - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); -#ifdef WCOREDUMP - } -#endif -#else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %ld exit signal %d", - (long)pid->pid, WTERMSIG(status)); -#endif - } - } -} - static int setup_listeners(server_rec *s) { ap_listen_rec *lr; @@ -1022,7 +970,7 @@ static void server_main_loop(int remaining_children_to_start) ap_wait_or_timeout(&status, &pid, pconf); if (pid.pid != -1) { - process_child_status(&pid, status); + ap_process_child_status(&pid, status); /* non-fatal death... note that it's gone in the scoreboard. */ child_slot = find_child_by_pid(&pid); if (child_slot >= 0) { diff --git a/server/mpm/prefork/mpm.h b/server/mpm/prefork/mpm.h index 2d45e743c8..c912aa06d1 100644 --- a/server/mpm/prefork/mpm.h +++ b/server/mpm/prefork/mpm.h @@ -70,4 +70,5 @@ extern int ap_max_daemons_limit; extern scoreboard *ap_scoreboard_image; extern server_rec *ap_server_conf; extern int ap_my_pid; +extern char ap_coredump_dir[MAX_STRING_LEN]; #endif /* APACHE_MPM_DEXTER_H */ diff --git a/server/mpm/prefork/prefork.c b/server/mpm/prefork/prefork.c index 555227df31..894e0c990a 100644 --- a/server/mpm/prefork/prefork.c +++ b/server/mpm/prefork/prefork.c @@ -156,7 +156,7 @@ static int maintain_connection_status = 1; int ap_max_daemons_limit = -1; server_rec *ap_server_conf; -static char ap_coredump_dir[MAX_STRING_LEN]; +char ap_coredump_dir[MAX_STRING_LEN]; /* *Non*-shared http_main globals... */ @@ -1283,59 +1283,6 @@ static void perform_idle_server_maintenance(void) } } - -static void process_child_status(ap_proc_t *pid, ap_wait_t status) -{ - /* Child died... if it died due to a fatal error, - * we should simply bail out. - */ - if ((WIFEXITED(status)) && - WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf, - "Child %ld returned a Fatal error... \n" - "Apache is exiting!", - (long)pid->pid); - exit(APEXIT_CHILDFATAL); - } - if (WIFSIGNALED(status)) { - switch (WTERMSIG(status)) { - case SIGTERM: - case SIGHUP: - case SIGUSR1: - case SIGKILL: - break; - default: -#ifdef SYS_SIGLIST -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %ld exit signal %s (%d), " - "possible coredump in %s", - (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" : - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), - ap_coredump_dir); - } - else { -#endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %ld exit signal %s (%d)", (long)pid->pid, - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); -#ifdef WCOREDUMP - } -#endif -#else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, - 0, ap_server_conf, - "child pid %ld exit signal %d", - (long)pid->pid, WTERMSIG(status)); -#endif - } - } -} - - static int setup_listeners(server_rec *s) { ap_listen_rec *lr; @@ -1453,7 +1400,7 @@ int ap_mpm_run(ap_pool_t *_pconf, ap_pool_t *plog, server_rec *s) * extra child */ if (pid.pid != -1) { - process_child_status(&pid, status); + ap_process_child_status(&pid, status); /* non-fatal death... note that it's gone in the scoreboard. */ ap_sync_scoreboard_image(); child_slot = find_child_by_pid(&pid); diff --git a/server/mpm/spmt_os2/mpm.h b/server/mpm/spmt_os2/mpm.h index 1170c28364..0931a4b35b 100644 --- a/server/mpm/spmt_os2/mpm.h +++ b/server/mpm/spmt_os2/mpm.h @@ -65,4 +65,6 @@ #define SPMT_OS2_MPM +extern char ap_coredump_dir[MAX_STRING_LEN]; + #endif /* APACHE_MPM_DEXTER_H */ diff --git a/server/mpm/spmt_os2/spmt_os2.c b/server/mpm/spmt_os2/spmt_os2.c index 65d34a2138..9ca01bcad0 100644 --- a/server/mpm/spmt_os2/spmt_os2.c +++ b/server/mpm/spmt_os2/spmt_os2.c @@ -100,7 +100,7 @@ static int ap_extended_status = 0; */ static int max_daemons_limit = -1; -static char ap_coredump_dir[MAX_STRING_LEN]; +char ap_coredump_dir[MAX_STRING_LEN]; /* *Non*-shared http_main globals... */ @@ -1201,58 +1201,6 @@ static void perform_idle_server_maintenance(void) } -static void process_child_status(int tid, ap_wait_t status) -{ - /* Child died... if it died due to a fatal error, - * we should simply bail out. - */ - if ((WIFEXITED(status)) && - WEXITSTATUS(status) == APEXIT_CHILDFATAL) { - ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, server_conf, - "Child %d returned a Fatal error... \n" - "Apache is exiting!", - tid); - exit(APEXIT_CHILDFATAL); - } - if (WIFSIGNALED(status)) { - switch (WTERMSIG(status)) { - case SIGTERM: - case SIGHUP: - case SIGUSR1: - case SIGKILL: - break; - default: -#ifdef SYS_SIGLIST -#ifdef WCOREDUMP - if (WCOREDUMP(status)) { - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, - server_conf, - "child tid %d exit signal %s (%d), " - "possible coredump in %s", - tid, (WTERMSIG(status) >= NumSIG) ? "" : - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), - ap_coredump_dir); - } - else { -#endif - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, - server_conf, - "child tid %d exit signal %s (%d)", tid, - SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); -#ifdef WCOREDUMP - } -#endif -#else - ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, - server_conf, - "child tid %d exit signal %d", - tid, WTERMSIG(status)); -#endif - } - } -} - - /***************************************************************** * Executive routines. */ @@ -1333,7 +1281,7 @@ int ap_mpm_run(ap_pool_t *_pconf, ap_pool_t *plog, server_rec *s) * extra child */ if (tid >= 0) { - process_child_status(tid, status); + ap_process_child_status(tid, status); /* non-fatal death... note that it's gone in the scoreboard. */ child_slot = find_child_by_tid(tid); if (child_slot >= 0) { diff --git a/server/mpm_common.c b/server/mpm_common.c index 3613ccaa0e..9f2923a843 100644 --- a/server/mpm_common.c +++ b/server/mpm_common.c @@ -224,4 +224,56 @@ void ap_wait_or_timeout(ap_wait_t *status, ap_proc_t *ret, ap_pool_t *p) return; } +void ap_process_child_status(ap_proc_t *pid, ap_wait_t status) +{ + /* Child died... if it died due to a fatal error, + * we should simply bail out. + */ + if ((WIFEXITED(status)) && + WEXITSTATUS(status) == APEXIT_CHILDFATAL) { + ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, 0, ap_server_conf, + "Child %ld returned a Fatal error... \n" + "Apache is exiting!", + (long)pid->pid); + exit(APEXIT_CHILDFATAL); + } + if (WIFSIGNALED(status)) { + switch (WTERMSIG(status)) { + case SIGTERM: + case SIGHUP: + case SIGUSR1: + case SIGKILL: + break; + default: +#ifdef SYS_SIGLIST +#ifdef WCOREDUMP + if (WCOREDUMP(status)) { + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, + 0, ap_server_conf, + "child pid %ld exit signal %s (%d), " + "possible coredump in %s", + (long)pid->pid, (WTERMSIG(status) >= NumSIG) ? "" : + SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status), + ap_coredump_dir); + } + else { +#endif + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, + 0, ap_server_conf, + "child pid %ld exit signal %s (%d)", + (long)pid->pid, + SYS_SIGLIST[WTERMSIG(status)], WTERMSIG(status)); +#ifdef WCOREDUMP + } +#endif +#else + ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, + 0, ap_server_conf, + "child pid %ld exit signal %d", + (long)pid->pid, WTERMSIG(status)); +#endif + } + } +} + -- 2.50.1