exit-status: kill is_clean_exit_lsb(), move logic to sysv-generator

Let's get rid of is_clean_exit_lsb(), let's move the logic for the special
handling of the two LSB exit codes into the sysv-generator by writing out
appropriate SuccessExitStatus= lines if the LSB header exists. This is not only
semantically more correct, bug also fixes a bug as the code in service.c that
chose between is_clean_exit_lsb() and is_clean_exit() based this check on
whether a native unit files was available for the unit. However, that check was
bogus since a long time, since the SysV generator was introduced and native
SysV script support was removed from PID 1, as in that case a unit file always
existed.
This commit is contained in:
Lennart Poettering
2016-10-10 21:48:08 +02:00
parent 3b8769bda8
commit 41e2036eb8
5 changed files with 10 additions and 14 deletions
-10
View File
@@ -194,16 +194,6 @@ bool is_clean_exit(int code, int status, ExitStatusSet *success_status) {
return false;
}
bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status) {
if (is_clean_exit(code, status, success_status))
return true;
return
code == CLD_EXITED &&
IN_SET(status, EXIT_NOTINSTALLED, EXIT_NOTCONFIGURED);
}
void exit_status_set_free(ExitStatusSet *x) {
assert(x);
-1
View File
@@ -99,7 +99,6 @@ typedef struct ExitStatusSet {
const char* exit_status_to_string(int status, ExitStatusLevel level) _const_;
bool is_clean_exit(int code, int status, ExitStatusSet *success_status);
bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status);
void exit_status_set_free(ExitStatusSet *x);
bool exit_status_set_is_empty(ExitStatusSet *x);