mirror of
https://github.com/troglobit/finit.git
synced 2026-11-06 15:51:03 +00:00
initctl: minor, simplify code
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
2 files changed
+25
-45
No files matched your search
+24
-38
@@ -29,11 +29,6 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <search.h>
|
#include <search.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#ifdef _LIBITE_LITE
|
|
||||||
# include <libite/lite.h>
|
|
||||||
#else
|
|
||||||
# include <lite/lite.h>
|
|
||||||
#endif
|
|
||||||
#include <sys/sysinfo.h> /* sysinfo() */
|
#include <sys/sysinfo.h> /* sysinfo() */
|
||||||
|
|
||||||
#include "cgutil.h"
|
#include "cgutil.h"
|
||||||
@@ -546,10 +541,8 @@ static int cgroup_filter(const struct dirent *entry)
|
|||||||
int cgroup_tree(char *path, char *pfx, int mode, int pos)
|
int cgroup_tree(char *path, char *pfx, int mode, int pos)
|
||||||
{
|
{
|
||||||
struct dirent **namelist = NULL;
|
struct dirent **namelist = NULL;
|
||||||
char s[32], r[32], l[32];
|
char s[32], r[32], l[32], row[1024];
|
||||||
char row[ttcols + 9]; /* + control codes */
|
|
||||||
size_t rlen = sizeof(row) - 1;
|
size_t rlen = sizeof(row) - 1;
|
||||||
size_t rplen = rlen - 9;
|
|
||||||
struct stat st;
|
struct stat st;
|
||||||
struct cg *cg;
|
struct cg *cg;
|
||||||
char buf[512];
|
char buf[512];
|
||||||
@@ -580,7 +573,7 @@ int cgroup_tree(char *path, char *pfx, int mode, int pos)
|
|||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 1:
|
case 1:
|
||||||
cg = cg_stats(path);
|
cg = cg_stats(path);
|
||||||
snprintf(row, rplen, "\r %6.6s %6.6s %6.6s %5.1f %5.1f %s",
|
snprintf(row, rlen, " %6.6s %6.6s %6.6s %5.1f %5.1f %s",
|
||||||
memsz(cg->cg_vmsize, s, sizeof(s)),
|
memsz(cg->cg_vmsize, s, sizeof(s)),
|
||||||
memsz(cg->cg_rss, r, sizeof(r)),
|
memsz(cg->cg_rss, r, sizeof(r)),
|
||||||
memsz(cg->cg_vmlib, l, sizeof(l)),
|
memsz(cg->cg_vmlib, l, sizeof(l)),
|
||||||
@@ -588,18 +581,17 @@ int cgroup_tree(char *path, char *pfx, int mode, int pos)
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
cg = cg_conf(path);
|
cg = cg_conf(path);
|
||||||
snprintf(row, rplen, "\r%6.6s [%-6.6s%6.6s] %6s [%-6.6s%6.6s] %s",
|
snprintf(row, rlen, "%6.6s [%-6.6s%6.6s] %6s [%-6.6s%6.6s] %s",
|
||||||
memsz(cg->cg_vmsize, s, sizeof(s)),
|
memsz(cg->cg_vmsize, s, sizeof(s)),
|
||||||
cg->cg_mem.min, cg->cg_mem.max, cg->cg_cpu.set,
|
cg->cg_mem.min, cg->cg_mem.max, cg->cg_cpu.set,
|
||||||
cg->cg_cpu.weight, cg->cg_cpu.max, path);
|
cg->cg_cpu.weight, cg->cg_cpu.max, path);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
strlcpy(row, "\r", rplen);
|
strlcpy(row, path, rlen);
|
||||||
strlcat(row, path, rplen);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%s%s\n", row, CLREOL);
|
printf("\r%s%s\n", row, CLREOL);
|
||||||
pos++;
|
pos++;
|
||||||
if (pos >= ttrows - 1)
|
if (pos >= ttrows - 1)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -620,41 +612,34 @@ int cgroup_tree(char *path, char *pfx, int mode, int pos)
|
|||||||
/* skip kernel threads for now (no cmdline) */
|
/* skip kernel threads for now (no cmdline) */
|
||||||
cmdline = pid_cmdline(pid);
|
cmdline = pid_cmdline(pid);
|
||||||
if (cmdline) {
|
if (cmdline) {
|
||||||
char proc[ttcols];
|
char proc[512]; /* Build full command, truncate row later */
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 1:
|
case 1:
|
||||||
snprintf(row, rplen, "\r%37s", " ");
|
snprintf(row, rlen, "%37s", " ");
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
snprintf(row, rplen, "\r --.-- [ ] [ ] ");
|
snprintf(row, rlen, " --.-- [ ] [ ] ");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
strlcpy(row, "\r", rplen);
|
row[0] = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
strlcat(row, pfx, rplen);
|
strlcat(row, pfx, rlen);
|
||||||
strlcat(row, ++i == num ? END : FORK, rlen);
|
strlcat(row, ++i == num ? END : FORK, rlen);
|
||||||
|
|
||||||
snprintf(proc, sizeof(proc), " %d %s", pid, cmdline);
|
snprintf(proc, sizeof(proc), " %d %s", pid, cmdline);
|
||||||
|
|
||||||
if (plain) {
|
if (plain) {
|
||||||
strlcat(row, proc, rplen);
|
strlcat(row, proc, rlen);
|
||||||
} else {
|
} else {
|
||||||
int len;
|
|
||||||
|
|
||||||
strlcat(row, CDIM, rlen);
|
strlcat(row, CDIM, rlen);
|
||||||
strlcat(row, proc, rlen);
|
strlcat(row, proc, rlen);
|
||||||
|
|
||||||
len = strlen(row) + strlen(CRST);
|
|
||||||
if (len > (int)rlen)
|
|
||||||
row[rlen - strlen(CRST)] = 0;
|
|
||||||
|
|
||||||
strlcat(row, CRST, sizeof(row));
|
strlcat(row, CRST, sizeof(row));
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%s%s\n", row, CLREOL);
|
printf("\r%s%s\n", row, CLREOL);
|
||||||
pos++;
|
pos++;
|
||||||
|
|
||||||
free(cmdline);
|
free(cmdline);
|
||||||
@@ -681,8 +666,8 @@ out:
|
|||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 1:
|
case 1:
|
||||||
cg = cg_stats(buf);
|
cg = cg_stats(buf);
|
||||||
snprintf(row, rplen,
|
snprintf(row, rlen,
|
||||||
"\r %6.6s %6.6s %6.6s %5.1f %5.1f ",
|
" %6.6s %6.6s %6.6s %5.1f %5.1f ",
|
||||||
memsz(cg->cg_vmsize, s, sizeof(s)),
|
memsz(cg->cg_vmsize, s, sizeof(s)),
|
||||||
memsz(cg->cg_rss, r, sizeof(r)),
|
memsz(cg->cg_rss, r, sizeof(r)),
|
||||||
memsz(cg->cg_vmlib, l, sizeof(l)),
|
memsz(cg->cg_vmlib, l, sizeof(l)),
|
||||||
@@ -690,30 +675,30 @@ out:
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
cg = cg_conf(buf);
|
cg = cg_conf(buf);
|
||||||
snprintf(row, rplen, "\r%6.6s [%-6.6s%6.6s] %6.6s [%-6.6s%6.6s] ",
|
snprintf(row, rlen, "%6.6s [%-6.6s%6.6s] %6.6s [%-6.6s%6.6s] ",
|
||||||
memsz(cg->cg_vmsize, s, sizeof(s)),
|
memsz(cg->cg_vmsize, s, sizeof(s)),
|
||||||
cg->cg_mem.min, cg->cg_mem.max,
|
cg->cg_mem.min, cg->cg_mem.max,
|
||||||
cg->cg_cpu.set, cg->cg_cpu.weight, cg->cg_cpu.max);
|
cg->cg_cpu.set, cg->cg_cpu.weight, cg->cg_cpu.max);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
strlcpy(row, "\r", rplen);
|
row[0] = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
strlcat(row, pfx, rplen);
|
strlcat(row, pfx, rlen);
|
||||||
if (i + 1 == n) {
|
if (i + 1 == n) {
|
||||||
strlcat(row, END, rplen);
|
strlcat(row, END, rlen);
|
||||||
snprintf(prefix, sizeof(prefix), "%s ", pfx);
|
snprintf(prefix, sizeof(prefix), "%s ", pfx);
|
||||||
} else {
|
} else {
|
||||||
strlcat(row, FORK, rplen);
|
strlcat(row, FORK, rlen);
|
||||||
snprintf(prefix, sizeof(prefix), "%s%s ", pfx, PIPE);
|
snprintf(prefix, sizeof(prefix), "%s%s ", pfx, PIPE);
|
||||||
}
|
}
|
||||||
strlcat(row, " ", rplen);
|
strlcat(row, " ", rlen);
|
||||||
|
|
||||||
strlcat(row, nm, rplen);
|
strlcat(row, nm, rlen);
|
||||||
strlcat(row, "/ ", rplen);
|
strlcat(row, "/ ", rlen);
|
||||||
|
|
||||||
printf("%s%s\n", row, CLREOL);
|
printf("\r%s%s\n", row, CLREOL);
|
||||||
pos++;
|
pos++;
|
||||||
|
|
||||||
pos = cgroup_tree(buf, prefix, mode, pos);
|
pos = cgroup_tree(buf, prefix, mode, pos);
|
||||||
@@ -756,6 +741,7 @@ static void cgtop(uev_t *w, void *arg, int events)
|
|||||||
lines = 1;
|
lines = 1;
|
||||||
}
|
}
|
||||||
cgroup_tree(arg, NULL, 1, lines);
|
cgroup_tree(arg, NULL, 1, lines);
|
||||||
|
|
||||||
/* Clear from cursor to end of screen to remove leftover lines */
|
/* Clear from cursor to end of screen to remove leftover lines */
|
||||||
fputs("\e[J", stdout);
|
fputs("\e[J", stdout);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|||||||
+1
-7
@@ -33,11 +33,6 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <utmp.h>
|
#include <utmp.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#ifdef _LIBITE_LITE
|
|
||||||
# include <libite/lite.h>
|
|
||||||
#else
|
|
||||||
# include <lite/lite.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "initctl.h"
|
#include "initctl.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
@@ -45,7 +40,6 @@
|
|||||||
#include "serv.h"
|
#include "serv.h"
|
||||||
#include "service.h"
|
#include "service.h"
|
||||||
#include "cgutil.h"
|
#include "cgutil.h"
|
||||||
#include "util.h"
|
|
||||||
#include "utmp-api.h"
|
#include "utmp-api.h"
|
||||||
|
|
||||||
struct cmd {
|
struct cmd {
|
||||||
@@ -124,7 +118,7 @@ void print_header(const char *fmt, ...)
|
|||||||
fputc('=', stdout);
|
fputc('=', stdout);
|
||||||
fputs("\n", stdout);
|
fputs("\n", stdout);
|
||||||
} else {
|
} else {
|
||||||
char buf[ttcols];
|
char buf[ttcols - 9];
|
||||||
|
|
||||||
vsnprintf(buf, sizeof(buf), fmt, ap);
|
vsnprintf(buf, sizeof(buf), fmt, ap);
|
||||||
printheader(stdout, buf, 0);
|
printheader(stdout, buf, 0);
|
||||||
|
|||||||
Reference in new issue
Block a user