From: Valentine Krasnobaeva Date: Wed, 16 Oct 2024 09:22:00 +0000 (+0200) Subject: MINOR: startup: close devnullfd, when daemon mode is applied X-Git-Tag: v3.1-dev10~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c42ad79134a08dca04a98c6016484785c054cb23;p=thirdparty%2Fhaproxy.git MINOR: startup: close devnullfd, when daemon mode is applied In case of daemon mode now daemonization fork happens in the early init stage before parsing and applying the configuration, so we can't close stdio/stderr/stdout immediately after forking. We keep it open until the most of configuration, including chroot are applied in order to show alerts, if there are some problems. To achieve this /dev/null is opened just before calling chroot(), and after the chroot block it's used to close all standard outputs and stdin. At this point we no longer need the fd of /dev/null, so we can close it as well. --- diff --git a/src/haproxy.c b/src/haproxy.c index 920788b22c..9107a14de2 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -3948,6 +3948,8 @@ int main(int argc, char **argv) stdio_quiet(devnullfd); global.mode &= ~MODE_VERBOSE; global.mode |= MODE_QUIET; /* ensure that we won't say anything from now */ + close(devnullfd); + devnullfd = -1; } pid = getpid(); /* update pid */ setsid();