Pretty printing of current runlevel in initctl show

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2015-11-22 15:58:32 +01:00
1 parent 4ada42f380
commit f38dfaf2dc
2 files changed
+14 -4

No files matched your search

+12 -2
View File
@@ -84,17 +84,27 @@ int runlevel_get(void)
*/ */
char *runlevel_string(int levels) char *runlevel_string(int levels)
{ {
int i, pos = 1;; int i, pos = 1;
static char lvl[10] = "[]"; static char lvl[20];
memset(lvl, 0, sizeof(lvl));
lvl[0] = '[';
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
if (ISSET(levels, i)) { if (ISSET(levels, i)) {
if (runlevel == i)
pos = strlcat(lvl, "\e[1m", sizeof(lvl));
if (i == 0) if (i == 0)
lvl[pos++] = 'S'; lvl[pos++] = 'S';
else else
lvl[pos++] = '0' + i; lvl[pos++] = '0' + i;
if (runlevel == i)
pos = strlcat(lvl, "\e[0m", sizeof(lvl));
} }
} }
lvl[pos++] = ']'; lvl[pos++] = ']';
lvl[pos] = 0; lvl[pos] = 0;
+2 -2
View File
@@ -144,7 +144,7 @@ static int show_status(char *UNUSED(arg))
runlevel = runlevel_get(); runlevel = runlevel_get();
if (!verbose) { if (!verbose) {
printf("# Status PID Runlevels Service Description\n"); printf("# Status PID Runlevels Service Description\n");
printf("====================================================================================\n"); printf("====================================================================================\n");
} }
@@ -156,7 +156,7 @@ static int show_status(char *UNUSED(arg))
else else
snprintf(jobid, sizeof(jobid), "%d:%d", svc->job, svc->id); snprintf(jobid, sizeof(jobid), "%d:%d", svc->job, svc->id);
printf("%-5s %7s %-6d %-9s ", jobid, svc_status(svc), svc->pid, runlevel_string(svc->runlevels)); printf("%-5s %7s %-6d %-18.18s ", jobid, svc_status(svc), svc->pid, runlevel_string(svc->runlevels));
if (!verbose) { if (!verbose) {
printf("%-20s %s\n", svc->cmd, svc->desc); printf("%-20s %s\n", svc->cmd, svc->desc);
continue; continue;