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.
This commit is contained in:
PiBa-NL 2017-11-28 23:26:08 +01:00 committed by Willy Tarreau
parent 4763ffdf04
commit baf6ea4bd5

View File

@ -2763,6 +2763,16 @@ int main(int argc, char **argv)
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);