summaryrefslogtreecommitdiff
path: root/src/rc/rc-applets.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-19 17:11:50 +0000
committerRoy Marples <roy@marples.name>2008-03-19 17:11:50 +0000
commitd9ec62b22a8ccfebda4af34d8319b33a8a5e3bbb (patch)
tree1ee06a122011bd5347ed1dac292e1408178cceb0 /src/rc/rc-applets.c
parent089caec283e1e1b39767abf9cb355f47ee6daca6 (diff)
downloadopenrc-d9ec62b22a8ccfebda4af34d8319b33a8a5e3bbb.tar.gz
openrc-d9ec62b22a8ccfebda4af34d8319b33a8a5e3bbb.tar.bz2
openrc-d9ec62b22a8ccfebda4af34d8319b33a8a5e3bbb.tar.xz
Add rc-service and update all softlevel refs to runlevel.
Diffstat (limited to 'src/rc/rc-applets.c')
-rw-r--r--src/rc/rc-applets.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/rc/rc-applets.c b/src/rc/rc-applets.c
index 96b392d..821832c 100644
--- a/src/rc/rc-applets.c
+++ b/src/rc/rc-applets.c
@@ -362,6 +362,18 @@ static int do_shell_var(int argc, char **argv)
return EXIT_SUCCESS;
}
+static int rc_service(_unused int argc, char **argv)
+{
+ char *service = rc_service_resolve(argv[1]);
+
+ if (!service)
+ eerrorx("%s: service `%s' does not exist", applet, optarg);
+
+ *++argv = service;
+ execv(*argv, argv);
+ eerrorx("%s: %s", applet, strerror(errno));
+ /* NOTREACHED */
+}
void run_applets(int argc, char **argv)
{
@@ -377,6 +389,8 @@ void run_applets(int argc, char **argv)
exit(mountinfo(argc, argv));
else if (strcmp(applet, "rc-depend") == 0)
exit(rc_depend(argc, argv));
+ else if (strcmp(applet, "rc-service") == 0)
+ exit(rc_service(argc, argv));
else if (strcmp(applet, "rc-status") == 0)
exit(rc_status(argc, argv));
else if (strcmp(applet, "rc-update") == 0 ||