brian 97/02/02 17:36:46
Modified: support Makefile httpd_monitor.c Log: Reviewed by: Dean Gaudet <[EMAIL PROTECTED]>, Jim Jagielski <[EMAIL PROTECTED]> Submitted by: Paul Sutton <[EMAIL PROTECTED]> This is a repost of my patch to make httpd_monitor.c understand the current scoreboard format (if using a scoreboard file). It also cleans up the source a bit (removes unused defines, etc). Also, the Makefile in the support directory still has to be edited by hand to set the compiler name, cflags etc. Surely this can be automated by Configure? The same information that is pre-pended to Makefile.tmpl in src could be pre-pended to the Makefile in support. Revision Changes Path 1.18 +8 -1 apache/support/Makefile Index: Makefile =================================================================== RCS file: /export/home/cvs/apache/support/Makefile,v retrieving revision 1.17 retrieving revision 1.18 diff -C3 -r1.17 -r1.18 *** Makefile 1997/01/07 07:23:43 1.17 --- Makefile 1997/02/03 01:36:45 1.18 *************** *** 12,17 **** --- 12,24 ---- # For OS/2 port #EXTRA_LIBS= -llibufc -lsocket + # If you turned on extra status logging with the -DSTATUS flag in the + # Configuration file, you _must_ uncomment the following line for + # httpd_monitor to work (remember that httpd_monitor only works if + # you are using a scoreboard file -- on most systems the scoreboard + # will be held in memory and httpd_monitor will not work) + STATUS=-DSTATUS + INCLUDES= -I../src -I../src/regex RM= /bin/rm -f *************** *** 62,68 **** $(CC) $(CFLAGS) htdigest.c -o htdigest httpd_monitor: httpd_monitor.c ! $(CC) $(INCLUDES) $(CFLAGS) httpd_monitor.c -o httpd_monitor rotatelogs: rotatelogs.c $(CC) $(INCLUDES) $(CFLAGS) rotatelogs.c -o rotatelogs --- 69,75 ---- $(CC) $(CFLAGS) htdigest.c -o htdigest httpd_monitor: httpd_monitor.c ! $(CC) $(INCLUDES) $(CFLAGS) $(STATUS) httpd_monitor.c -o httpd_monitor rotatelogs: rotatelogs.c $(CC) $(INCLUDES) $(CFLAGS) rotatelogs.c -o rotatelogs 1.7 +20 -14 apache/support/httpd_monitor.c Index: httpd_monitor.c =================================================================== RCS file: /export/home/cvs/apache/support/httpd_monitor.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** httpd_monitor.c 1997/01/01 18:26:16 1.6 --- httpd_monitor.c 1997/02/03 01:36:45 1.7 *************** *** 51,67 **** * simple script to monitor the child Apache processes * Usage: ! * httpd_monitor -p pid_file -s sleep_time ! * Will give you an update ever sleep_time seconds ! * using pid_file as the location of the PID file. * If you choose 0, it might chew up lots of CPU time. * * Output explanation.. * ! * s = sleeping but "ready to go" child ! * R = active child ! * _ = dead child (no longer needed) ! * t = just starting * * * Jim Jagielski <[EMAIL PROTECTED]> --- 51,72 ---- * simple script to monitor the child Apache processes * Usage: ! * httpd_monitor [ -d serverdir | -f conffile ] [ -s sleep_time ] ! * -d/-f options specify server dir or config files, as per ! * httpd. ! * -s specifies how long to pause between screen updates * If you choose 0, it might chew up lots of CPU time. * * Output explanation.. * ! * s = sleeping but "ready to go" child (this is '_' in mod_status) ! * R = active child - writing to client ! * W = active child - reading from client ! * K = active child - waiting for additional request on kept-alive connection ! * D = active child - doing DNS lookup ! * L = active child - logging ! * _ = dead child (no longer needed) (this is '.' in mod_status) ! * t = just starting (this is 'S' in mod_status) * * * Jim Jagielski <[EMAIL PROTECTED]> *************** *** 71,76 **** --- 76,84 ---- * * v1.1: * Minor fixes + * + * v1.2: + * Handles Apache 1.1.* scoreboard format (W/K/D/L states) -- PCS 09Jul96 */ #include <stdio.h> *************** *** 80,90 **** #include "../src/httpd.h" #include "../src/scoreboard.h" - #define PIDFILE_OPT "PidFile" - #define SCORE_OPT "ScoreBoardFile" #define DEFAULT_SLEEPTIME 2 #define ASIZE 1024 ! #define MAX_PROC 40 int main(argc, argv) --- 88,96 ---- #include "../src/httpd.h" #include "../src/scoreboard.h" #define DEFAULT_SLEEPTIME 2 #define ASIZE 1024 ! #define MAX_PROC HARD_SERVER_LIMIT int main(argc, argv) *************** *** 98,105 **** char score_name[ASIZE]; char tbuf[ASIZE]; char *ptmp; ! static char kid_stat[] = { '_', 's', 'R', 't' }; ! char achar; long thepid; int score_fd; int sleep_time = DEFAULT_SLEEPTIME; --- 104,111 ---- char score_name[ASIZE]; char tbuf[ASIZE]; char *ptmp; ! static char kid_stat[] = { '_', 's', 'R', 't', 'W', 'K', 'L', 'D' }; ! int achar; long thepid; int score_fd; int sleep_time = DEFAULT_SLEEPTIME; *************** *** 199,205 **** achar = kid_stat[(int)scoreboard_image.status]; if (scoreboard_image.pid != 0 && scoreboard_image.pid != thepid) { total++; ! if (achar == 'R') running++; *ptmp = achar; *++ptmp = '\0'; --- 205,212 ---- achar = kid_stat[(int)scoreboard_image.status]; if (scoreboard_image.pid != 0 && scoreboard_image.pid != thepid) { total++; ! if (scoreboard_image.status != SERVER_DEAD && ! scoreboard_image.status != SERVER_READY) running++; *ptmp = achar; *++ptmp = '\0'; *************** *** 266,272 **** * ServerRoot line... if not, we bail out */ if (!*sroot) { - perror("httpd_monitor"); fprintf(stderr, "Can't find ServerRoot!\n"); exit(1); } --- 273,278 ----