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)
This commit is contained in:
Eray Aslan 2011-01-12 19:46:11 -06:00 committed by William Hubbs
parent 84eda608c8
commit 66abbefd6c
2 changed files with 9 additions and 5 deletions

View File

@ -101,7 +101,7 @@ _status()
return 0 return 0
else else
einfo "status: stopped" einfo "status: stopped"
return 1 return 3
fi fi
} }

View File

@ -596,8 +596,10 @@ svc_start_check(void)
fcntl(exclusive_fd, F_SETFD, fcntl(exclusive_fd, F_SETFD,
fcntl(exclusive_fd, F_GETFD, 0) | FD_CLOEXEC); fcntl(exclusive_fd, F_GETFD, 0) | FD_CLOEXEC);
if (state & RC_SERVICE_STARTED) if (state & RC_SERVICE_STARTED) {
ewarnx("WARNING: %s has already been started", applet); ewarn("WARNING: %s has already been started", applet);
exit(EXIT_SUCCESS);
}
else if (state & RC_SERVICE_INACTIVE && !in_background) else if (state & RC_SERVICE_INACTIVE && !in_background)
ewarnx("WARNING: %s has already started, but is inactive", ewarnx("WARNING: %s has already started, but is inactive",
applet); applet);
@ -845,8 +847,10 @@ svc_stop_check(RC_SERVICE *state)
fcntl(exclusive_fd, F_SETFD, fcntl(exclusive_fd, F_SETFD,
fcntl(exclusive_fd, F_GETFD, 0) | FD_CLOEXEC); fcntl(exclusive_fd, F_GETFD, 0) | FD_CLOEXEC);
if (*state & RC_SERVICE_STOPPED) if (*state & RC_SERVICE_STOPPED) {
ewarnx("WARNING: %s is already stopped", applet); ewarn("WARNING: %s is already stopped", applet);
exit(EXIT_SUCCESS);
}
rc_service_mark(service, RC_SERVICE_STOPPING); rc_service_mark(service, RC_SERVICE_STOPPING);
hook_out = RC_HOOK_SERVICE_STOP_OUT; hook_out = RC_HOOK_SERVICE_STOP_OUT;