From 5f94e98d8958ff0003bfbb736427070d16270d6e Mon Sep 17 00:00:00 2001 From: Valentine Krasnobaeva Date: Mon, 9 Dec 2024 12:00:35 +0100 Subject: [PATCH] BUG/MEDIUM: startup: don't daemonize if started with -c Due to master-worker refactoring, daemonization fork happens now very early, before parsing and verifying the configuration. For the moment there is no any specific syntax, which needs for the daemon mode to be really applied in order to perform the tests. So, it's better not to do the daemonization fork, if 'daemon' keyword is presented in the config (or -D option), when we started with -c (MODE_CHECK). Like this, during the config verification, the process will always stay in foreground and all warning or errors will be delivered to the stdout. This fix should be backported only in 3.1. --- src/haproxy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/haproxy.c b/src/haproxy.c index 34c29d170..94faab41c 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -3366,7 +3366,8 @@ int main(int argc, char **argv) * will become then a master) in background, before it will fork a * worker, because the worker should be also in background for this case. */ - if ((getenv("HAPROXY_MWORKER_REEXEC") == NULL) && (global.mode & MODE_DAEMON)) + if ((getenv("HAPROXY_MWORKER_REEXEC") == NULL) && (global.mode & MODE_DAEMON) + && !(global.mode & MODE_CHECK)) apply_daemon_mode(); /* Master-worker and program forks */