diff options
Diffstat (limited to 'src/progman.c')
-rw-r--r-- | src/progman.c | 58 |
1 files changed, 45 insertions, 13 deletions
diff --git a/src/progman.c b/src/progman.c index 1235d81..89be1f5 100644 --- a/src/progman.c +++ b/src/progman.c @@ -2056,42 +2056,74 @@ progman_dump_stats (const char *filename) for (prog = proghead; prog; prog = prog->next) { int i; + char fbuf[5]; + int fidx = 0; + fprintf (fp, "%-16s ", prog->tag); switch (prog->type) { case TYPE_COMPONENT: - fprintf (fp, "component %s ", prog->tag); + fbuf[fidx++] = 'C'; + if (prog->v.p.comp->mode == pies_comp_inetd + && prog->v.p.listener) + fbuf[fidx++] = 'i'; + if (prog->pid) { - fprintf (fp, "%lu", (unsigned long) prog->pid); if (prog->v.p.status == status_stopping) - fprintf (fp, " (stopping)"); + fbuf[fidx++] = 'S'; + else + fbuf[fidx++] = 'R'; } else if (prog->v.p.status == status_sleeping) { - time_t t = prog->v.p.timestamp + SLEEPTIME; - fprintftime (fp, _("[disabled; scheduled for %c]"), - localtime (&t), 0, 0); + fbuf[fidx++] = 's'; } else if (prog->v.p.status == status_disabled) - fprintf (fp, _("[disabled]")); + fbuf[fidx++] = 'D'; else if (prog->v.p.status == status_listener) - fprintf (fp, _("[listener]")); + fbuf[fidx++] = 'I'; + break; + + case TYPE_REDIRECTOR: + fbuf[fidx++] = 'R'; + break; + + case TYPE_COMMAND: + fbuf[fidx++] = 'E'; + } + fbuf[fidx++] = 0; + fprintf (fp, "%-8.8s ", fbuf); + + switch (prog->type) + { + case TYPE_COMPONENT: + if (prog->pid) + fprintf (fp, "%10lu ", (unsigned long) prog->pid); + else if (prog->v.p.status == status_listener + && prog->v.p.comp->socket_url) + fprintf (fp, "%-10s ", prog->v.p.comp->socket_url->string); else - fprintf (fp, _("[not running]")); + fprintf (fp, "%-10s ", "N/A"); + + if (prog->v.p.status == status_sleeping) + { + time_t t = prog->v.p.timestamp + SLEEPTIME; + fprintftime (fp, "%H:%M:%S", localtime (&t), 0, 0); + } + for (i = 0; i < prog->v.p.comp->argc; i++) fprintf (fp, " %s", quotearg (prog->v.p.comp->argv[i])); - fputc ('\n', fp); break; case TYPE_REDIRECTOR: - fprintf (fp, _("redirector %s %lu\n"), prog->tag, - (unsigned long) prog->pid); + fprintf (fp, "%10lu ", (unsigned long) prog->pid); break; case TYPE_COMMAND: - fprintf (fp, _("command %s: %s\n"), prog->tag, prog->v.c.command); + fprintf (fp, "%s", prog->v.c.command); } + fputc ('\n', fp); } fclose (fp); unlink (filename); |