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.
This commit is contained in:
Valentine Krasnobaeva 2024-12-09 12:00:35 +01:00 committed by Willy Tarreau
parent 5d1b30d6b8
commit 5f94e98d89

View File

@ -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 */