From 03c8d17d1aaa7fc9bf6816895fc48f84581caa4e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 14 Aug 2022 18:53:40 +0100 Subject: [PATCH] prefork: new plan - make fa-monitor like the normal monitor Signed-off-by: Ian Jackson --- cprogs/prefork-interp.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/cprogs/prefork-interp.c b/cprogs/prefork-interp.c index 52e3088..018a791 100644 --- a/cprogs/prefork-interp.c +++ b/cprogs/prefork-interp.c @@ -24,8 +24,8 @@ * setup (pre-exec) fd0: null, * fd[12]: fd2-from-outer * env fds: listener, call(server-end)(fake) - * env fds: orig-fd[01] * close fd: lockfile + * possibly clean env, argv * * setup (script) runs initialisation parts of the script * at prefork establishment point: @@ -35,30 +35,25 @@ * # server (pm) [1] [fd0: null], * [fd[12]: fd2-from-outer] - * right away, forks one fa-monitor + * right away, forks init monitor * [2] closes outer caller fds and call(fake) * [server (pm)] fd[012]: null * other fds: listener, syslog * runs in loop accepting and forking, - * reaping and limiting children (incl fa-monitor) + * reaping and limiting children (incl init monitor) * reports failures of monitors to syslog * - * f-a monitor forks executor - * closes fd: listener - * [fd[12]: fd2-from-outer] - * [other fds: call(server-end)(fake), syslog] - * runs as monitor, below - * - * * [client (C wrapper)] if client connect succeeds: * now fd: call(client-end) * sends message with: cmdline, env * sends fds * - * [server (script)] accepts, forks monitor + * [server (script)] accepts, forks subseq monitor * - * monitor [1] [fd[012]: null] - * other fds: syslog, call(server-end) + * monitor [1] [fd0: null] + * (init [fd[12]: init: fd2-from-outer; subseq: null] + * or errors: init: fd2; subseq: syslog + * subseq) other fds: syslog, call(server-end) * sends ack byte * receives args, env, fds * forks executor @@ -73,7 +68,8 @@ * exits normally * * [monitor] [fd[012]: null] - * [other fds: call(server-end), syslog] + * [fd[12]: init: fd2-from-outer; subseq: null] + * [errors: init: fd2; subseq: syslog] * reaps executor * reports status via socket * -- 2.30.2