]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: startup: close devnullfd, when daemon mode is applied
authorValentine Krasnobaeva <vkrasnobaeva@haproxy.com>
Wed, 16 Oct 2024 09:22:00 +0000 (11:22 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 16 Oct 2024 20:02:39 +0000 (22:02 +0200)
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

index 920788b22cf2d5e6535ca866f2ded5ffd4690028..9107a14de2b88e8d41661fec5212858046d27478 100644 (file)
@@ -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();