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