From 66abbefd6c389642aedd32f89285de32223b3da6 Mon Sep 17 00:00:00 2001 From: Eray Aslan Date: Wed, 12 Jan 2011 19:46:11 -0600 Subject: bug 351160: make openrc exit codes LSB compliant * status on a stopped service now has a return code of 3 (was 1) * starting an already started service now has a return code of 0 (was 1) * stopping an already stopped service now has a return code of 0 (was 1) --- src/rc/runscript.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/rc/runscript.c b/src/rc/runscript.c index f3f0517e..1c60c249 100644 --- a/src/rc/runscript.c +++ b/src/rc/runscript.c @@ -596,8 +596,10 @@ svc_start_check(void) fcntl(exclusive_fd, F_SETFD, fcntl(exclusive_fd, F_GETFD, 0) | FD_CLOEXEC); - if (state & RC_SERVICE_STARTED) - ewarnx("WARNING: %s has already been started", applet); + if (state & RC_SERVICE_STARTED) { + ewarn("WARNING: %s has already been started", applet); + exit(EXIT_SUCCESS); + } else if (state & RC_SERVICE_INACTIVE && !in_background) ewarnx("WARNING: %s has already started, but is inactive", applet); @@ -845,8 +847,10 @@ svc_stop_check(RC_SERVICE *state) fcntl(exclusive_fd, F_SETFD, fcntl(exclusive_fd, F_GETFD, 0) | FD_CLOEXEC); - if (*state & RC_SERVICE_STOPPED) - ewarnx("WARNING: %s is already stopped", applet); + if (*state & RC_SERVICE_STOPPED) { + ewarn("WARNING: %s is already stopped", applet); + exit(EXIT_SUCCESS); + } rc_service_mark(service, RC_SERVICE_STOPPING); hook_out = RC_HOOK_SERVICE_STOP_OUT; -- cgit v1.2.3