BUG/MINOR: mworker: detach from tty when in daemon mode
This allows a calling script to show the first startup output and
know when to stop reading from stdout so haproxy can daemonize.
To be backpored to 1.8.
diff --git a/src/haproxy.c b/src/haproxy.c
index c7f21e3..e842673 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2763,6 +2763,16 @@
if (global.mode & MODE_MWORKER) {
mworker_cleanlisteners();
deinit_pollers();
+
+ if ((!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) &&
+ (global.mode & MODE_DAEMON)) {
+ /* detach from the tty, this is required to properly daemonize. */
+ fclose(stdin); fclose(stdout); fclose(stderr);
+ global.mode &= ~MODE_VERBOSE;
+ global.mode |= MODE_QUIET; /* ensure that we won't say anything from now */
+ setsid();
+ }
+
mworker_wait();
/* should never get there */
exit(EXIT_FAILURE);