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