", r);
else
ap_rputs("Scoreboard: ", r);
for (i = 0; i < HARD_SERVER_LIMIT; ++i) {
ap_rputc(stat_buffer[i], r);
if ((i % STATUS_MAXLINE == (STATUS_MAXLINE - 1)) && !short_report)
ap_rputs("\n", r);
}
if (short_report)
ap_rputs("\n", r);
else {
ap_rputs("\n", r);
ap_rputs("Scoreboard Key: _\" Waiting for Connection, \n", r);
ap_rputs("\"S\" Starting up, \n", r);
ap_rputs("\"R\" Reading Request,W\" Sending Reply, \n", r);
ap_rputs("\"K\" Keepalive (read), \n", r);
ap_rputs("\"D\" DNS Lookup,L\" Logging, \n", r);
ap_rputs("\"G\" Gracefully finishing, \n", r);
ap_rputs("\".\" Open slot with no current process\n", r); ap_rputs("
\n", r);
if (!ap_extended_status) {
int j = 0;
ap_rputs("PID Key:
\n", r);
ap_rputs("
\n", r);
for (i = 0; i < HARD_SERVER_LIMIT; ++i) {
if (stat_buffer[i] != '.') {
ap_rprintf(r, " %d in state: %c ", pid_buffer[i],
stat_buffer[i]);
if (++j >= 3) {
ap_rputs("\n", r);
j = 0;
} else
ap_rputs(",", r);
}
}
ap_rputs("\n", r);
ap_rputs("\n", r);
}
}
if (ap_extended_status) {
if (!short_report) {
if (no_table_report)
ap_rputs("\n\n
| Srv | PID | Acc | M\n | SS | Req | Conn | Child | Slot | Client | VHost | Request |
|---|
| Srv | PID | Acc | M | CPU\n | SS | Req | Conn | Child | Slot | Client | VHost | Request | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| %d-%d | %d | %d/%lu/%lu", i, (int) ps_record.generation, (int) ps_record.pid, (int) conn_lres, my_lres, lres); } else #endif /* TPF */ ap_rprintf(r, " | |||||||||||||||||||||
| %d-%d | - | %d/%lu/%lu", i, (int) ps_record.generation, (int) conn_lres, my_lres, lres); else ap_rprintf(r, " | |||||||||||||||||||||
| %d-%d | %d | %d/%lu/%lu", i, (int) ps_record.generation, (int) ps_record.pid, (int) conn_lres, my_lres, lres); switch (score_record.status) { case SERVER_READY: ap_rputs(" | _", r); break; case SERVER_STARTING: ap_rputs(" | S", r); break; case SERVER_BUSY_READ: ap_rputs(" | R", r); break; case SERVER_BUSY_WRITE: ap_rputs(" | W", r); break; case SERVER_BUSY_KEEPALIVE: ap_rputs(" | K", r); break; case SERVER_BUSY_LOG: ap_rputs(" | L", r); break; case SERVER_BUSY_DNS: ap_rputs(" | D", r); break; case SERVER_DEAD: ap_rputs(" | .", r); break; case SERVER_GRACEFUL: ap_rputs(" | G", r); break; default: ap_rputs(" | ?", r); break; } #ifdef NO_TIMES /* Allow for OS/2 not having CPU stats */ ap_rprintf(r, "\n | %.0f | %ld", #else ap_rprintf(r, "\n | %.2f | %.0f | %ld", (score_record.times.tms_utime + score_record.times.tms_stime + score_record.times.tms_cutime + score_record.times.tms_cstime) / tick, #endif #ifdef OPTIMIZE_TIMEOUTS difftime(nowtime, ps_record.last_rtime), #else difftime(nowtime, score_record.last_used), #endif (long) req_time); ap_rprintf(r, " | %-1.1f | %-2.2f | %-2.2f\n", (float) conn_bytes / KBYTE, (float) my_bytes / MBYTE, (float) bytes / MBYTE); if (score_record.status == SERVER_BUSY_READ) ap_rprintf(r, " | ? | ? | ..reading.. | %s | %s | %s\n\n",
ap_escape_html(r->pool, score_record.client),
vhost ? ap_escape_html(r->pool,
vhost->server_hostname) : "(unavailable)",
ap_escape_html(r->pool, score_record.request));
} /* no_table_report */
} /* !short_report */
} /* if ( |
| Srv | Child Server number - generation\n \ |
|---|---|
| PID | OS process ID\n \ |
| Acc | Number of accesses this connection / this child / this slot\n \ |
| M | Mode of operation\n \ |
| SS | Seconds since beginning of most recent request\n \ |
| Req | Milliseconds required to process most recent request\n \ |
| Conn | Kilobytes transferred this connection\n \ |
| Child | Megabytes transferred this child\n \ |
| Slot | Total megabytes transferred this slot\n \ |
| Srv | Child Server number - generation\n \ |
|---|---|
| PID | OS process ID\n \ |
| Acc | Number of accesses this connection / this child / this slot\n \ |
| M | Mode of operation\n \ |
| CPU | CPU usage, number of seconds\n \ |
| SS | Seconds since beginning of most recent request\n \ |
| Req | Milliseconds required to process most recent request\n \ |
| Conn | Kilobytes transferred this connection\n \ |
| Child | Megabytes transferred this child\n \ |
| Slot | Total megabytes transferred this slot\n \ |
ExtendedStatus On directive. \n", r);
}
}
if (!short_report) {
ap_rputs(ap_psignature("