From 63b5db38df7557346178e0f53565747c2620b205 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 10 Jul 2023 13:25:11 +0200 Subject: [PATCH] Refactor, ensure pre:/post:/ready: scripts run in the same cgroup Related to issue #361. Signed-off-by: Joachim Wiberg --- src/service.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/service.c b/src/service.c index 54e28bf4..fe4a0eb6 100644 --- a/src/service.c +++ b/src/service.c @@ -560,6 +560,15 @@ static pid_t service_fork(svc_t *svc) source_env(svc); } + if (pid > 1) { + char grnam[80]; + + if (svc_is_tty(svc)) + cgroup_user("getty", pid); + else + cgroup_service(group_name(svc, grnam, sizeof(grnam)), pid, &svc->cgroup); + } + return pid; } @@ -643,16 +652,8 @@ static int service_start(svc_t *svc) goto fail; } if (pid > 1) { - char grnam[80]; - svc->pid = pid; svc->start_time = jiffies(); - - if (svc_is_tty(svc)) - cgroup_user("getty", pid); - else - cgroup_service(group_name(svc, grnam, sizeof(grnam)), pid, &svc->cgroup); - } else if (pid == 0) { char *args[MAX_NUM_SVC_ARGS + 1]; int status;