mirror of
https://github.com/systemd/systemd.git
synced 2024-12-26 03:22:00 +03:00
delta: diff returns 1 when files differ, ignore this
https://bugs.debian/org/771397
This commit is contained in:
parent
56e73b34ce
commit
820d3acfe9
Notes:
Lennart Poettering
2014-12-09 20:18:58 +01:00
Backport: bugfix
@ -367,7 +367,7 @@ int main(int argc, char *argv[]) {
|
||||
execv(args[0], (char * const *) args);
|
||||
_exit(EXIT_FAILURE);
|
||||
} else
|
||||
wait_for_terminate_and_warn("kexec", pid);
|
||||
wait_for_terminate_and_warn("kexec", pid, true);
|
||||
}
|
||||
|
||||
cmd = RB_AUTOBOOT;
|
||||
|
@ -193,7 +193,7 @@ static int found_override(const char *top, const char *bottom) {
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
wait_for_terminate_and_warn("diff", pid);
|
||||
wait_for_terminate_and_warn("diff", pid, false);
|
||||
putchar('\n');
|
||||
|
||||
return k;
|
||||
|
@ -280,7 +280,7 @@ int main(int argc, char *argv[]) {
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
r = wait_for_terminate_and_warn(argv[optind], pid);
|
||||
r = wait_for_terminate_and_warn(argv[optind], pid, true);
|
||||
return r < 0 ? EXIT_FAILURE : r;
|
||||
}
|
||||
|
||||
|
@ -2544,7 +2544,7 @@ static int change_uid_gid(char **_home) {
|
||||
|
||||
truncate_nl(line);
|
||||
|
||||
wait_for_terminate_and_warn("getent passwd", pid);
|
||||
wait_for_terminate_and_warn("getent passwd", pid, true);
|
||||
|
||||
x = strchr(line, ':');
|
||||
if (!x) {
|
||||
@ -2628,7 +2628,7 @@ static int change_uid_gid(char **_home) {
|
||||
|
||||
truncate_nl(line);
|
||||
|
||||
wait_for_terminate_and_warn("getent initgroups", pid);
|
||||
wait_for_terminate_and_warn("getent initgroups", pid, true);
|
||||
|
||||
/* Skip over the username and subsequent separator whitespace */
|
||||
x = line;
|
||||
|
@ -111,7 +111,7 @@ int main(int argc, char *argv[]) {
|
||||
_exit(1); /* Operational error */
|
||||
}
|
||||
|
||||
r = wait_for_terminate_and_warn("quotacheck", pid);
|
||||
r = wait_for_terminate_and_warn("quotacheck", pid, true);
|
||||
|
||||
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
}
|
||||
|
@ -3786,8 +3786,11 @@ int wait_for_terminate(pid_t pid, siginfo_t *status) {
|
||||
*
|
||||
* That is, success is indicated by a return value of zero, and an
|
||||
* error is indicated by a non-zero value.
|
||||
*
|
||||
* A warning is emitted if the process terminates abnormally,
|
||||
* and also if it returns non-zero unless check_exit_code is true.
|
||||
*/
|
||||
int wait_for_terminate_and_warn(const char *name, pid_t pid) {
|
||||
int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_code) {
|
||||
int r;
|
||||
siginfo_t status;
|
||||
|
||||
@ -3799,14 +3802,13 @@ int wait_for_terminate_and_warn(const char *name, pid_t pid) {
|
||||
return log_warning_errno(r, "Failed to wait for %s: %m", name);
|
||||
|
||||
if (status.si_code == CLD_EXITED) {
|
||||
if (status.si_status != 0) {
|
||||
log_warning("%s failed with error code %i.", name, status.si_status);
|
||||
return status.si_status;
|
||||
}
|
||||
|
||||
log_debug("%s succeeded.", name);
|
||||
return 0;
|
||||
if (status.si_status != 0)
|
||||
log_full(check_exit_code ? LOG_WARNING : LOG_DEBUG,
|
||||
"%s failed with error code %i.", name, status.si_status);
|
||||
else
|
||||
log_debug("%s succeeded.", name);
|
||||
|
||||
return status.si_status;
|
||||
} else if (status.si_code == CLD_KILLED ||
|
||||
status.si_code == CLD_DUMPED) {
|
||||
|
||||
@ -4161,13 +4163,13 @@ void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv
|
||||
path = hashmap_remove(pids, UINT_TO_PTR(pid));
|
||||
assert(path);
|
||||
|
||||
wait_for_terminate_and_warn(path, pid);
|
||||
wait_for_terminate_and_warn(path, pid, true);
|
||||
}
|
||||
|
||||
_exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
wait_for_terminate_and_warn(directory, executor_pid);
|
||||
wait_for_terminate_and_warn(directory, executor_pid, true);
|
||||
}
|
||||
|
||||
int kill_and_sigcont(pid_t pid, int sig) {
|
||||
|
@ -513,7 +513,7 @@ char *unquote(const char *s, const char *quotes);
|
||||
char *normalize_env_assignment(const char *s);
|
||||
|
||||
int wait_for_terminate(pid_t pid, siginfo_t *status);
|
||||
int wait_for_terminate_and_warn(const char *name, pid_t pid);
|
||||
int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_code);
|
||||
|
||||
noreturn void freeze(void);
|
||||
|
||||
|
@ -308,7 +308,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (font_pid > 0)
|
||||
wait_for_terminate_and_warn(KBD_SETFONT, font_pid);
|
||||
wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true);
|
||||
|
||||
r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid);
|
||||
if (r < 0) {
|
||||
@ -317,7 +317,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
if (keymap_pid > 0)
|
||||
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
|
||||
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true);
|
||||
|
||||
/* Only copy the font when we started setfont successfully */
|
||||
if (font_copy && font_pid > 0)
|
||||
|
Loading…
Reference in New Issue
Block a user