LOW: systemd-wrapper: Write debug information to stdout

Write the command line used to call haproxy to stdout, as
well as the return code returned by the haproxy process.
This commit is contained in:
Kristoffer Grnlund 2013-11-22 11:11:54 +01:00 committed by Willy Tarreau
parent 66fd1d830e
commit f65194a6fa

View File

@ -55,6 +55,12 @@ static void spawn_haproxy(char **pid_strv, int nb_pid)
argv[argno++] = pid_strv[i]; argv[argno++] = pid_strv[i];
} }
argv[argno] = NULL; argv[argno] = NULL;
printf("%s", "haproxy-systemd-wrapper: executing ");
for (i = 0; argv[i]; ++i)
printf("%s ", argv[i]);
puts("");
execv(argv[0], argv); execv(argv[0], argv);
exit(0); exit(0);
} }
@ -104,6 +110,7 @@ static void sigint_handler(int signum __attribute__((unused)))
for (i = 0; i < nb_pid; ++i) { for (i = 0; i < nb_pid; ++i) {
pid = atoi(pid_strv[i]); pid = atoi(pid_strv[i]);
if (pid > 0) { if (pid > 0) {
printf("haproxy-systemd-wrapper: SIGINT -> %d\n", pid);
kill(pid, SIGINT); kill(pid, SIGINT);
free(pid_strv[i]); free(pid_strv[i]);
} }
@ -126,9 +133,11 @@ static void init(int argc, char **argv)
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int status;
--argc; ++argv; --argc; ++argv;
main_argc = argc; main_argc = argc;
main_argv = argv; main_argv = argv;
init(argc, argv); init(argc, argv);
@ -136,7 +145,10 @@ int main(int argc, char **argv)
signal(SIGUSR2, &sigusr2_handler); signal(SIGUSR2, &sigusr2_handler);
spawn_haproxy(NULL, 0); spawn_haproxy(NULL, 0);
while (-1 != wait(NULL) || errno == EINTR); status = -1;
while (-1 != wait(&status) || errno == EINTR)
;
printf("haproxy-systemd-wrapper: exit, haproxy RC=%d\n", status);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }