From aa60adf9912d900d14e358a2278728022474d789 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sat, 30 May 2026 10:19:50 +0100 Subject: [PATCH] herdd: implement service startup using posix_spawn --- services/herdd/service.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/services/herdd/service.c b/services/herdd/service.c index aa700a6..0c654d2 100644 --- a/services/herdd/service.c +++ b/services/herdd/service.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -174,6 +175,22 @@ int service_start(struct service *svc) { log("Starting %s...", svc->s_description); - log_ok("Started %s.", svc->s_description); - return 0; + pid_t child = 0; + char *const argv[] = { + svc->s_name, + NULL, + }; + + int err = posix_spawn(&child, svc->s_exec, NULL, NULL, argv, NULL); + + if (err == 0) { + log_ok("Started %s.", svc->s_description); + } else { + log_fail( + "Failed to start %s (%s)", + svc->s_description, + strerror(errno)); + } + + return err; }