From 8aba63a9e3e2acee837f230f4f4605753227b1ec Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Fri, 12 Mar 2021 00:13:15 +0100 Subject: [PATCH] Track oldpid of services to fix empty pid in restart message Signed-off-by: Joachim Wiberg --- src/service.c | 3 ++- src/svc.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/service.c b/src/service.c index 5ac2e6f5..36ad9f05 100644 --- a/src/service.c +++ b/src/service.c @@ -621,6 +621,7 @@ static void service_cleanup(svc_t *svc) basename(svc->cmd), fn); /* No longer running, update books. */ + svc->oldpid = svc->pid; svc->start_time = svc->pid = 0; } @@ -1284,7 +1285,7 @@ static void service_retry(svc_t *svc) _d("%s crashed, trying to start it again, attempt %d", svc->cmd, *restart_cnt); logit(LOG_CONSOLE | LOG_WARNING, "Service %s[%d] died, restarting (%d/%d)", - svc_ident(svc, NULL, 0), svc->pid, *restart_cnt, SVC_RESPAWN_MAX); + svc_ident(svc, NULL, 0), svc->oldpid, *restart_cnt, SVC_RESPAWN_MAX); svc_unblock(svc); service_step(svc); diff --git a/src/svc.h b/src/svc.h index 02f49b3a..075839a7 100644 --- a/src/svc.h +++ b/src/svc.h @@ -98,7 +98,7 @@ typedef struct svc { /* Service details */ int sighalt; /* Signal to stop prorcess, default: SIGTERM */ int killdelay; /* Delay in msec before sending SIGKILL */ - pid_t pid; + pid_t oldpid, pid; char pidfile[256]; long start_time; /* Start time, as seconds since boot, from sysinfo() */ int started; /* Set for run/task/sysv to track if started */