www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Janos Farkas <chexum-sub...@shadow.banki.hu>
Subject Re: general/2144: apache always detaches for normal operation
Date Mon, 31 Aug 1998 15:20:01 GMT
The following reply was made to PR general/2144; it has been noted by GNATS.

From: Janos Farkas <chexum-submit@shadow.banki.hu>
To: Dean Gaudet <dgaudet@arctic.org>
Cc: apbugs@hyperreal.org
Subject: Re: general/2144: apache always detaches for normal operation
Date: Mon, 31 Aug 1998 17:13:32 +0200

 On 1998-04-27 at 20:09:17, Dean Gaudet wrote:
 > 1.3 is in feature freeze... but if you want to work this out that's cool.
 
 Ok, I guess I am few months too late, but I just got around to the
 apache updating game now...  I think I managed to do it as cleanly as
 possible; without of course affecting users who don't know about it.
 
 So here's it, the essence of the change is very-very small; just making
 http_main.c detach() not if !one_process, but if !no_detach, and
 creating a new '-n' option to do just that, and for a bit more
 streamlining, making '-X' set one_process AND this new no_detach
 variable.  And of course updating all the getopt calls in there, and
 updating both the manual page, and the html docs to describe briefly
 what '-n' does.
 
 [Just an aside, most programs which can do a no-detach start, usually do
 that on '-f', but it's not available.  A few more programs use -n (the
 Linux klogd/syslogd, and amd IIRC), so I settled for that.]
 
 Janos
 
 Index: htdocs/manual/invoking.html
 ===================================================================
 RCS file: /cvs/apache-1.3/htdocs/manual/invoking.html,v
 retrieving revision 1.20
 diff -u -u -r1.20 invoking.html
 --- invoking.html	1998/07/19 21:34:58	1.20
 +++ invoking.html	1998/08/31 14:54:10
 @@ -59,6 +59,10 @@
  daemon does not detach from the terminal or fork any children. Do <EM>NOT</EM>
  use this mode to provide ordinary web service.
  
 +<DT><CODE>-n</CODE>
 +<DD>Run the daemon without detaching from the terminal, but don't stop
 +it from creating child processes.
 +
  <DT><CODE>-v</CODE>
  <DD>Print the version of httpd and its build date, and then exit.
  
 Index: src/main/http_main.c
 ===================================================================
 RCS file: /cvs/apache-1.3/src/main/http_main.c,v
 retrieving revision 1.387
 diff -u -u -r1.387 http_main.c
 --- http_main.c	1998/08/13 01:55:06	1.387
 +++ http_main.c	1998/08/31 14:54:26
 @@ -306,6 +306,12 @@
  
  static int one_process = 0;
  
 +/* nodetach -- don't detach on startup; has no effect on the further work of
 + * the server.
 + */
 +
 +static int no_detach = 0;
 +
  /* set if timeouts are to be handled by the children and not by the parent.
   * i.e. child_timeouts = !standalone || one_process.
   */
 @@ -954,6 +960,7 @@
      fprintf(stderr, "  -f file          : specify an alternate ServerConfigFile\n");
      fprintf(stderr, "  -C \"directive\"   : process directive before reading config files\n");
      fprintf(stderr, "  -c \"directive\"   : process directive after  reading config files\n");
 +    fprintf(stderr, "  -n               : don't detach from the terminal\n");
      fprintf(stderr, "  -v               : show version number\n");
      fprintf(stderr, "  -V               : show compile settings\n");
      fprintf(stderr, "  -h               : list available configuration directives\n");
 @@ -4100,7 +4107,7 @@
      is_graceful = 0;
      ++generation;
  
 -    if (!one_process) {
 +    if (!no_detach) {
  	detach();
      }
      else {
 @@ -4349,7 +4356,7 @@
      ap_setup_prelinked_modules();
  
      while ((c = getopt(argc, argv,
 -				    "D:C:c:Xd:f:vVhlL:St"
 +				    "D:C:c:Xnd:f:vVhlL:St"
  #ifdef DEBUG_SIGSTOP
  				    "Z:"
  #endif
 @@ -4391,6 +4398,9 @@
  	    exit(0);
  	case 'X':
  	    ++one_process;	/* Weird debugging mode. */
 +				/* flow through to no detach */
 +	case 'n':
 +	    ++no_detach;
  	    break;
  #ifdef DEBUG_SIGSTOP
  	case 'Z':
 @@ -5516,7 +5526,7 @@
  
      ap_setup_prelinked_modules();
  
 -    while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVhlZ:iusSt")) != -1) {
 +    while ((c = getopt(argc, argv, "D:C:c:Xnd:f:vVhlZ:iusSt")) != -1) {
          char **new;
  	switch (c) {
  	case 'c':
 @@ -5577,6 +5587,9 @@
  	    exit(0);
  	case 'X':
  	    ++one_process;	/* Weird debugging mode. */
 +				/* flow through to no detach */
 +	case 'n':
 +	    ++no_detach;
  	    break;
  	case 't':
  	    configtestonly = 1;
 @@ -5707,12 +5720,13 @@
       * but only handle the -L option 
       */
      llp_dir = SHARED_CORE_DIR;
 -    while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVhlL:SZ:t")) != -1) {
 +    while ((c = getopt(argc, argv, "D:C:c:Xnd:f:vVhlL:SZ:t")) != -1) {
  	switch (c) {
  	case 'D':
  	case 'C':
  	case 'c':
  	case 'X':
 +	case 'n':
  	case 'd':
  	case 'f':
  	case 'v':
 Index: src/support/httpd.8
 ===================================================================
 RCS file: /cvs/apache-1.3/src/support/httpd.8,v
 retrieving revision 1.11
 diff -u -u -r1.11 httpd.8
 --- httpd.8	1998/06/16 03:37:32	1.11
 +++ httpd.8	1998/08/31 14:54:28
 @@ -71,6 +71,8 @@
  .BI \-c " directive"
  ] [
  .BI \-D " parameter"
 +] [
 +.BI \-n
  ]
  
  .B httpd 
 @@ -144,6 +146,10 @@
  Sets a configuration \fIparameter\fP which can be used with
  <IfDefine>...</IfDefine> sections in the configuration files
  to conditionally skip or process commands.
 +.TP
 +.BI \-n
 +Run the daemon without detaching from the terminal, but don't stop
 +it from creating child processes.
  .TP
  .B \-h
  Output a list of directives together with expected arguments and
 

Mime
View raw message