This global directive loads and executes a Lua file. This directive can be
used multiple times.
-master-worker [exit-on-failure]
+master-worker [no-exit-on-failure]
Master-worker mode. It is equivalent to the command line "-W" argument.
This mode will launch a "master" which will monitor the "workers". Using
this mode, you can reload HAProxy directly by sending a SIGUSR2 signal to
the master. The master-worker mode is compatible either with the foreground
or daemon mode. It is recommended to use this mode with multiprocess and
systemd.
- The "exit-on-failure" option allows the master to kill every workers and
- exit when one of the current workers died. It is convenient to combine this
- option with Restart=on-failure in a systemd unit file in order to relaunch
- the whole process.
+ By default, if a worker exits with a bad return code, in the case of a
+ segfault for example, all workers will be killed, and the master will leave.
+ It is convenient to combine this behavior with Restart=on-failure in a
+ systemd unit file in order to relaunch the whole process. If you don't want
+ this behavior, you must use the keyword "no-exit-on-failure".
- See alors "-W" in the management guide.
+ See also "-W" in the management guide.
nbproc <number>
Creates <number> processes when going daemon. This requires the "daemon"
#define GTUNE_RESOLVE_DONTFAIL (1<<7)
#define GTUNE_SOCKET_TRANSFER (1<<8)
-#define GTUNE_EXIT_ONFAILURE (1<<9)
+#define GTUNE_NOEXIT_ONFAILURE (1<<9)
#define GTUNE_USE_SYSTEMD (1<<10)
/* Access level for a stats socket */
if (alertif_too_many_args(1, file, linenum, args, &err_code))
goto out;
if (*args[1]) {
- if (!strcmp(args[1], "exit-on-failure")) {
- global.tune.options |= GTUNE_EXIT_ONFAILURE;
+ if (!strcmp(args[1], "no-exit-on-failure")) {
+ global.tune.options |= GTUNE_NOEXIT_ONFAILURE;
} else {
ha_alert("parsing [%s:%d] : '%s' only supports 'exit-on-failure' option.\n", file, linenum, args[0]);
err_code |= ERR_ALERT | ERR_FATAL;
if (current_child(exitpid)) {
ha_alert("Current worker %d left with exit code %d\n", exitpid, status);
if (status != 0 && status != 130 && status != 143
- && global.tune.options & GTUNE_EXIT_ONFAILURE) {
+ && !(global.tune.options & GTUNE_NOEXIT_ONFAILURE)) {
ha_alert("exit-on-failure: killing every workers with SIGTERM\n");
mworker_kill(SIGTERM);
}