From 2dc44849fd8ca9447adc34bd5b86c4c88b267527 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sat, 12 Feb 2022 22:55:33 +0100 Subject: return pid=-1 in status when exec didn't run yet The restart delay is run in the child, but before setsid, so the PGID equals our PID until after that. This can be used to detect flapping services. --- rvnit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rvnit.c b/rvnit.c index b477c38..f7b0a33 100644 --- a/rvnit.c +++ b/rvnit.c @@ -333,7 +333,7 @@ socket_loop(void* ignored) services[i].name[2] == 'L') dprintf(connfd, "%-25s pid=%d state=%s uptime=%ld status=%d\n", services[i].name, - services[i].pid, + getpgid(services[i].pid) == getpid() ? -1 : services[i].pid, services[i].state == UP ? "UP" : "DOWN", services[i].pid > 0 ? (long)(now - services[i].start) : 0, services[i].status); -- cgit 1.4.1