From e21840cfced42425b9e742fbd199a19369d0b614 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Wed, 20 Mar 2019 15:27:13 +0100 Subject: initd: don't start runsvc for services without exec block First in rdsvc, tag the services that *do* have exec lines, even if we don't read them. Second, if a service does not have that flag set, don't try to execute it. Signed-off-by: David Oberhollenzer --- lib/include/service.h | 2 ++ lib/init/rdsvc.c | 2 ++ 2 files changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/include/service.h b/lib/include/service.h index e46cd0e..85b82c5 100644 --- a/lib/include/service.h +++ b/lib/include/service.h @@ -41,6 +41,8 @@ enum { enum { /* truncate stdout */ SVC_FLAG_TRUNCATE_OUT = 0x01, + + SVC_FLAG_HAS_EXEC = 0x10, }; typedef struct service_t { diff --git a/lib/init/rdsvc.c b/lib/init/rdsvc.c index b86a27b..7ce68e3 100644 --- a/lib/init/rdsvc.c +++ b/lib/init/rdsvc.c @@ -81,6 +81,8 @@ static int svc_exec(void *user, char *arg, rdline_t *rd, int flags) service_t *svc = user; exec_t *e, *end; + svc->flags |= SVC_FLAG_HAS_EXEC; + if (flags & RDSVC_NO_EXEC) return 0; -- cgit v1.2.3