Received: (from majordom@localhost) by hyperreal.com (8.8.4/8.8.4) id TAA09108; Mon, 21 Apr 1997 19:18:42 -0700 (PDT) Received: from twinlark.arctic.org (twinlark.arctic.org [204.62.130.91]) by hyperreal.com (8.8.4/8.8.4) with SMTP id TAA09101 for ; Mon, 21 Apr 1997 19:18:39 -0700 (PDT) Received: (qmail 10249 invoked by uid 500); 22 Apr 1997 02:18:40 -0000 Date: Mon, 21 Apr 1997 19:18:40 -0700 (PDT) From: Dean Gaudet To: new-httpd@apache.org Subject: Re: graceful restarts, take 4 In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org I don't really trust that to work well everywhere :) Most systems don't have reliable signal delivery... in fact the only one I'm aware of that delivers all signals is linux 2.0.1 and later. It breaks some programs actually, which don't expect certain combos of signals to happen. There are probably others though. But wording like this on solaris' sigprocmask manpage: If there are any pending unblocked signals after the call to sigprocmask(), at least one of those signals will be delivered before the call to sigprocmask() returns. Make me think that we'd get nowhere assuming a signal to close the listening sockets would get through. Dean On Mon, 21 Apr 1997, Paul Sutton wrote: > On Sun, 20 Apr 1997, Dean Gaudet wrote: > > On Sun, 20 Apr 1997, Paul Sutton wrote: > > > I would love to see graceful restarts implemented (as a patch for 1.2). > > > And a graceful die would be nice too -- and the moment it is a pain having > > > to wait for the server to be quiet before killing it to change versions. > > > > Oh yeah that would be a good feature. The problem I see with it is that > > it'll be hard to rebind to the ports. For controlled servers you can use > > SO_REUSEADDR to let the new server take over. But in general that's not > > safe (consider servers running on ports >1023 on public systems, this > > would let any user steal connections). > > No, I was thinking more along the lines of making the active children > intercept a kill signal and, rather than dying straight away (as now), use > it to close down their open sockets (except the client socket), then > continue to serve the request. > > //pcs > > >