aboutsummaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-04-06 20:06:07 +0000
committerRoy Marples <roy@marples.name>2008-04-06 20:06:07 +0000
commitdcdfdb442f436cd1f1bdfdc46622f5d6f48f8061 (patch)
tree64ab72215c49e46a01224e272c3da1a4b2ef4868 /src/rc
parent143239e143d57c550e949fb3fcc4540de7c8d354 (diff)
Some systems are only detectable after /proc is mounted, so re-test if unknown.
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/rc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c
index b305b2d1..5ae7e1f1 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -935,11 +935,13 @@ static void handle_bad_signal(int sig)
static const struct option longopts[] = {
{ "override", 1, NULL, 'o' },
{ "service", 1, NULL, 's' },
+ { "sys", 0, NULL, 'S' },
longopts_COMMON
};
static const char * const longopts_help[] = {
"override the next runlevel to change into\nwhen leaving single user or boot runlevels",
"runs the service specified with the rest\nof the arguments",
+ "output the RC system type, if any",
longopts_help_COMMON
};
#include "_usage.c"
@@ -1028,6 +1030,12 @@ int main(int argc, char **argv)
execv(*argv, argv);
eerrorx("%s: %s", applet, strerror(errno));
/* NOTREACHED */
+ case 'S':
+ bootlevel = rc_sys();
+ if (bootlevel)
+ printf("%s\n", bootlevel);
+ exit(EXIT_SUCCESS);
+ /* NOTREACHED */
case_RC_COMMON_GETOPT
}
}