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.
This commit is contained in:
Valentine Krasnobaeva 2024-10-16 11:22:00 +02:00 committed by Willy Tarreau
parent dc53c37234
commit c42ad79134
1 changed files with 2 additions and 0 deletions

View File

@ -3948,6 +3948,8 @@ int main(int argc, char **argv)
stdio_quiet(devnullfd); stdio_quiet(devnullfd);
global.mode &= ~MODE_VERBOSE; global.mode &= ~MODE_VERBOSE;
global.mode |= MODE_QUIET; /* ensure that we won't say anything from now */ global.mode |= MODE_QUIET; /* ensure that we won't say anything from now */
close(devnullfd);
devnullfd = -1;
} }
pid = getpid(); /* update pid */ pid = getpid(); /* update pid */
setsid(); setsid();