From f6b5b0260b9344c7afc775c74a317dbe85eaf98a Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 9 Nov 2022 20:27:16 +0100 Subject: [PATCH] Fix #312: restart services with respawn set, e.g. ttys, immediately Signed-off-by: Joachim Wiberg --- src/service.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/service.c b/src/service.c index 5a6cc697..f2a7e5cf 100644 --- a/src/service.c +++ b/src/service.c @@ -2223,10 +2223,15 @@ restart: * which we need to wait for the forked-off child to create its pid * file. In both cases, after that, retry after 2 sec */ - if (!svc->respawn) + if (!svc->respawn) { dbg("delayed restart of %s", svc_ident(svc, NULL, 0)); - service_timeout_after(svc, svc->restart_tmo, service_retry); - goto done; + service_timeout_after(svc, svc->restart_tmo, service_retry); + goto done; + } + + dbg("respawning %s", svc_ident(svc, NULL, 0)); + svc_unblock(svc); + break; } if (svc_is_runtask(svc)) { /* only run/task, not sysv here */