From c42ad79134a08dca04a98c6016484785c054cb23 Mon Sep 17 00:00:00 2001 From: Valentine Krasnobaeva Date: Wed, 16 Oct 2024 11:22:00 +0200 Subject: [PATCH] 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. --- src/haproxy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/haproxy.c b/src/haproxy.c index 920788b22cf2..9107a14de2b8 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();