From: Willy Tarreau Date: Tue, 25 Oct 2016 14:51:40 +0000 (+0200) Subject: MINOR: systemd: report it when execve() fails X-Git-Tag: v1.7-dev5~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a785269b4e09114224062081f02b443b6008c524;p=thirdparty%2Fhaproxy.git MINOR: systemd: report it when execve() fails It's important to know that a signal sent to the wrapper had no effect because something failed during execve(). Ideally more info (strerror) should be reported. It would be nice to backport this to 1.6 and 1.5. --- diff --git a/src/haproxy-systemd-wrapper.c b/src/haproxy-systemd-wrapper.c index 15c48caea5..f4fcab106e 100644 --- a/src/haproxy-systemd-wrapper.c +++ b/src/haproxy-systemd-wrapper.c @@ -107,8 +107,12 @@ static void spawn_haproxy(char **pid_strv, int nb_pid) fprintf(stderr, "\n"); execv(argv[0], argv); + fprintf(stderr, SD_NOTICE "haproxy-systemd-wrapper: execv(%s) failed, please try again later.\n", argv[0]); exit(1); } + else if (pid == -1) { + fprintf(stderr, SD_NOTICE "haproxy-systemd-wrapper: failed to fork(), please try again later.\n"); + } } static int read_pids(char ***pid_strv) @@ -180,6 +184,7 @@ static void do_restart(int sig) execv(wrapper_argv[0], wrapper_argv); /* failed, let's reinstall the signal handler and continue */ setup_signal_handler(); + fprintf(stderr, SD_NOTICE "haproxy-systemd-wrapper: re-exec(%s) failed.\n", wrapper_argv[0]); } /* handles SIGTERM and SIGINT only */