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>