rc-status: add -m/--manual option to show manually started services
X-Gentoo-Bug: 585906 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=585906
This commit is contained in:
parent
c962678dd6
commit
695be59083
@ -33,6 +33,8 @@ Show all runlevels and their services.
|
||||
List all services that have crashed.
|
||||
.It Fl l , -list
|
||||
List all defined runlevels.
|
||||
.It Fl m , -manual
|
||||
Show all manually started services.
|
||||
.It Fl r , -runlevel
|
||||
Print the current runlevel name.
|
||||
.It Fl s , -servicelist
|
||||
|
@ -29,11 +29,12 @@
|
||||
|
||||
const char *applet = NULL;
|
||||
const char *extraopts = NULL;
|
||||
const char *getoptstring = "aclrsu" getoptstring_COMMON;
|
||||
const char *getoptstring = "aclmrsu" getoptstring_COMMON;
|
||||
const struct option longopts[] = {
|
||||
{"all", 0, NULL, 'a'},
|
||||
{"crashed", 0, NULL, 'c'},
|
||||
{"list", 0, NULL, 'l'},
|
||||
{"manual", 0, NULL, 'm'},
|
||||
{"runlevel", 0, NULL, 'r'},
|
||||
{"servicelist", 0, NULL, 's'},
|
||||
{"unused", 0, NULL, 'u'},
|
||||
@ -43,6 +44,7 @@ const char * const longopts_help[] = {
|
||||
"Show services from all run levels",
|
||||
"Show crashed services",
|
||||
"Show list of run levels",
|
||||
"Show manually started services",
|
||||
"Show the name of the current runlevel",
|
||||
"Show service list",
|
||||
"Show services not assigned to any runlevel",
|
||||
@ -50,7 +52,7 @@ const char * const longopts_help[] = {
|
||||
};
|
||||
const char *usagestring = "" \
|
||||
"Usage: rc-status [options] <runlevel>...\n" \
|
||||
" or: rc-status [options] [-a | -c | -l | -r | -s | -u]";
|
||||
" or: rc-status [options] [-a | -c | -l | -m | -r | -s | -u]";
|
||||
|
||||
static bool test_crashed = false;
|
||||
static RC_DEPTREE *deptree;
|
||||
@ -205,6 +207,27 @@ int main(int argc, char **argv)
|
||||
TAILQ_FOREACH(l, levels, entries)
|
||||
printf("%s\n", l->value);
|
||||
goto exit;
|
||||
case 'm':
|
||||
services = rc_services_in_runlevel(NULL);
|
||||
levels = rc_runlevel_list();
|
||||
TAILQ_FOREACH_SAFE(s, services, entries, t) {
|
||||
TAILQ_FOREACH(l, levels, entries)
|
||||
if (rc_service_in_runlevel(s->value, l->value)) {
|
||||
TAILQ_REMOVE(services, s, entries);
|
||||
free(s->value);
|
||||
free(s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
TAILQ_FOREACH_SAFE(s, services, entries, t)
|
||||
if (rc_service_state(s->value) &
|
||||
(RC_SERVICE_STOPPED | RC_SERVICE_HOTPLUGGED)) {
|
||||
TAILQ_REMOVE(services, s, entries);
|
||||
free(s->value);
|
||||
free(s);
|
||||
}
|
||||
print_services(NULL, services);
|
||||
goto exit;
|
||||
case 'r':
|
||||
runlevel = rc_runlevel_get();
|
||||
printf("%s\n", runlevel);
|
||||
|
Loading…
Reference in New Issue
Block a user