Reliable process tracking

Jilles Tjoelker jilles at stack.nl
Sun Aug 4 16:49:56 UTC 2013


On Sun, Aug 04, 2013 at 10:27:08AM -0400, Tom Rhodes wrote:
> On Sun, 4 Aug 2013 15:46:58 +0200
> Jilles Tjoelker <jilles at stack.nl> wrote:

> > When shutting down a service or requesting status, rc.subr currently
> > uses a combination of pidfiles and process names. This is fairly but not
> > completely reliable once it is set up correctly (which can take a lot of
> > work and possibly patching the daemon to use pidfile(3) from our
> > libutil). It is also incapable of killing multiprocess daemons such as
> > CGI web servers without cooperation of the daemon.

> > I think what is needed here is a facility that marks a process and all
> > of its descendants. Removing the mark should be a privileged or at least
> > an unusual operation; no unprivileged function specified by POSIX such
> > as setsid() should do this.

> > [snip]

> > Similar facilities in other operating systems: Linux cgroups, Solaris
> > process contracts.

> There is fscd - it does a lot of what you ask for.  In fact, I had
> talked to a few people about bringing it into base but have not
> really figured out how I want to integrate it into rc.

I think fscd complements reliable process tracking; it does not provide
it. Fscd relies on rc.d's status, stop and restart to work and therefore
only works properly if those work properly.

-- 
Jilles Tjoelker


More information about the freebsd-arch mailing list