From d6da8e8c48feb8faf9287fc86fbbf0890c37a87c Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Fri, 10 Oct 2008 08:37:21 +0000 Subject: sysinit is now a real runlevel that handles things like udev, dmesg and mounting various bits in /dev and /sys. init.sh JUST mounts /lib/rc/init.d (and /proc for Linux systems) To make development of this easier we now return an empty RC_STRINGLIST instead of a NULL for empty things. If you don't have a udev init script installed, don't reboot your box OR roll back to an older OpenRC version. --- src/rc/rc-service.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/rc/rc-service.c') diff --git a/src/rc/rc-service.c b/src/rc/rc-service.c index 11b6b58f..ab3d47b2 100644 --- a/src/rc/rc-service.c +++ b/src/rc/rc-service.c @@ -58,7 +58,8 @@ static const char * const longopts_help[] = { }; #include "_usage.c" -int rc_service(int argc, char **argv) +int +rc_service(int argc, char **argv) { int opt; char *service; @@ -75,17 +76,21 @@ int rc_service(int argc, char **argv) case 'e': service = rc_service_resolve(optarg); opt = service ? EXIT_SUCCESS : EXIT_FAILURE; +#ifdef DEBUG_MEMORY free(service); +#endif return opt; /* NOTREACHED */ case 'l': list = rc_services_in_runlevel(NULL); - if (! list) + if (!TAILQ_FIRST(list)) return EXIT_FAILURE; rc_stringlist_sort(&list); TAILQ_FOREACH(s, list, entries) printf("%s\n", s->value); +#ifdef DEBUG_MEMORY rc_stringlist_free(list); +#endif return EXIT_SUCCESS; /* NOTREACHED */ case 'r': @@ -93,7 +98,9 @@ int rc_service(int argc, char **argv) if (!service) return EXIT_FAILURE; printf("%s\n", service); +#ifdef DEBUG_MEMORY free(service); +#endif return EXIT_SUCCESS; /* NOTREACHED */ @@ -103,13 +110,10 @@ int rc_service(int argc, char **argv) argc -= optind; argv += optind; - if (!*argv) eerrorx("%s: you need to specify a service", applet); - if (!(service = rc_service_resolve(*argv))) eerrorx("%s: service `%s' does not exist", applet, *argv); - *argv = service; execv(*argv, argv); eerrorx("%s: %s", applet, strerror(errno)); -- cgit v1.2.3