diff options
author | Simo Sorce <idra@samba.org> | 2008-10-21 13:57:35 -0400 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2008-10-21 13:57:35 -0400 |
commit | c38fcbf3df0131caebec0ce0414fc409b63e9d93 (patch) | |
tree | a6efbfb88ef5b4402a5d67581e53f0eec2881a72 /server/process.c | |
parent | 85f827f25a879a4499180d61742ba6bc22b04ccc (diff) | |
download | sssd-c38fcbf3df0131caebec0ce0414fc409b63e9d93.tar.gz sssd-c38fcbf3df0131caebec0ce0414fc409b63e9d93.tar.bz2 sssd-c38fcbf3df0131caebec0ce0414fc409b63e9d93.zip |
Make return the pid when new process are started.
Monitor each service and restart it conditionally if it fails.
These monitoring is extremely simple at this moment and just uses
waitpid() to check if the client is alive, there is no active
probing, that will require dbus.
Make nsssrv.c read the sss pipe config option for the config db.
Diffstat (limited to 'server/process.c')
-rw-r--r-- | server/process.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/server/process.c b/server/process.c index e2600a5d..ebe6ba1e 100644 --- a/server/process.c +++ b/server/process.c @@ -44,7 +44,8 @@ static int none_setproctitle(const char *fmt, ...) int process_new_task(struct event_context *ev, const char *service_name, void (*new_task)(struct event_context *, void *), - void *private) + void *private, + pid_t *rpid) { pid_t pid; struct event_context *ev2; @@ -62,6 +63,10 @@ int process_new_task(struct event_context *ev, res = ECHILD; } + if (rpid) { + *rpid = pid; + } + /* ... go back to the event loop */ return res; } |