On Wed, Jul 27, 2005 at 12:40:58PM +0100, Colm MacCarthaigh wrote:
> configure.in makes a big deal about determining AP_SIG_GRACEFUL, which
> defaults to SIGUSR1, but uses SIGWINCH on Linux 2.0. But then
> mpm_common.c goes ahead and ignores this for actually sending the
> signal, SIGUSR1 is hard-coded;
> 
>     if (!strcmp(dash_k_arg, "graceful")) {
>         if (!running) {
>             printf("httpd not running, trying to start\n");
>         }
>         else {
>             *exit_status = send_signal(otherpid, SIGUSR1);
>             return 1;
>         }
>     }

Heh :)

> I can only surmise that there just arn't very many linux 2.0 users who
> try to do graceful restarts :-)
> 
> Anyway, an easy and obvious fix would be to patch that code to use
> AP_SIG_GRACEFUL. However this sucks, so I've attached a totally more
> insane patch to just use SIGUSR1 everywhere, and not support "graceful"
> on Linux 2,0 (which doesn't work anyway, so it's not exactly a change).

SIGUSR1 is unavailable on Linux 2.0 iff linuxthreads is used, i.e. in a 
threaded MPM.  It'd be better simply to refuse to allow use of threaded 
MPMs on such platforms (which nobody will notice) and allow graceful to 
use SIGUSR1 everywhere.

+1 on the patch if that much is changed.

joe

Reply via email to