From 160ef94e8b6aa580225555a9c38a99af2d4e27d2 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 26 Mar 2018 00:34:00 +0200 Subject: Add service respawn limit Signed-off-by: David Oberhollenzer --- initd/main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'initd') diff --git a/initd/main.c b/initd/main.c index efd3a30..9ce23c0 100644 --- a/initd/main.c +++ b/initd/main.c @@ -43,6 +43,16 @@ static void handle_exited(service_t *svc) break; } + if (svc->rspwn_limit > 0) { + svc->rspwn_limit -= 1; + + if (svc->rspwn_limit == 0) { + print_status(svc->desc, STATUS_FAIL, false); + delsvc(svc); + break; + } + } + svc->pid = runlst(svc->exec, svc->num_exec, svc->ctty); if (svc->pid == -1) { print_status(svc->desc, STATUS_FAIL, false); -- cgit v1.2.3