From: William A. Rowe Jr Date: Fri, 28 Sep 2007 17:43:24 +0000 (+0000) Subject: Share a single write-pipe handle for piped stderr logging, this X-Git-Tag: 2.3.0~1379 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=89c12727e957db297862547f9c9532ed27a62aa8;p=apache Share a single write-pipe handle for piped stderr logging, this prevents an extra logging process from hanging around after the initial config-phase. Reviewed by: rpluem, wrowe git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@580437 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/log.c b/server/log.c index 14b4fdc21f..aa840abfd9 100644 --- a/server/log.c +++ b/server/log.c @@ -421,6 +421,16 @@ int ap_open_logs(apr_pool_t *pconf, apr_pool_t *p /* plog */, apr_pool_destroy(stderr_pool); stderr_pool = stderr_p; replace_stderr = 0; + /* + * Now that we have dup'ed s_main->error_log to stderr_log + * close it and set s_main->error_log to stderr_log. This avoids + * this fd being inherited by the next piped logger who would + * keep open the writing end of the pipe that this one uses + * as stdin. This in turn would prevent the piped logger from + * exiting. + */ + apr_file_close(s_main->error_log); + s_main->error_log = stderr_log; } } /* note that stderr may still need to be replaced with something