Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Aug 2013 12:49:50 +0200
From:      =?iso-8859-2?Q?Edward_Tomasz_Napiera=B3a?= <trasz@FreeBSD.org>
To:        Alfred Perlstein <alfred@FreeBSD.org>
Cc:        Tom Rhodes <trhodes@FreeBSD.org>, Jilles Tjoelker <jilles@stack.nl>, freebsd-arch@freebsd.org
Subject:   Re: Reliable process tracking
Message-ID:  <6B52B01A-5CEC-41BC-9B59-57BD46CAE9B2@FreeBSD.org>
In-Reply-To: <51FF1F82.5050100@freebsd.org>
References:  <20130804134658.GC35080@stack.nl> <20130804102708.36341a8a.trhodes@FreeBSD.org> <20130804164954.GA37887@stack.nl> <51FF1F82.5050100@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Wiadomo=B6=E6 napisana przez Alfred Perlstein <alfred@FreeBSD.org> w =
dniu 5 sie 2013, o godz. 05:44:
> On 8/4/13 9:49 AM, Jilles Tjoelker wrote:
>> 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@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.
>>=20
> Jilles, very exciting you are looking into this.  Have you evaluated =
Linux's "cgroup" facility?  =46rom what I understand, it is a superset =
of your needs, so maybe taking some parts of it may help?

The good parts of cgroups were already implemented as setloginclass(2) =
:-)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6B52B01A-5CEC-41BC-9B59-57BD46CAE9B2>