From: Valentine Krasnobaeva Date: Mon, 9 Dec 2024 11:00:35 +0000 (+0100) Subject: BUG/MEDIUM: startup: don't daemonize if started with -c X-Git-Tag: v3.2-dev1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f94e98d8958ff0003bfbb736427070d16270d6e;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/haproxy.c b/src/haproxy.c index 34c29d1704..94faab41cb 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 */