diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2015-09-30 15:12:19 +0200 |
---|---|---|
committer | Michal Schmidt <mschmidt@redhat.com> | 2015-10-07 14:24:49 +0200 |
commit | 4cf0b03b976dd7050595f835092b551623468dbe (patch) | |
tree | 32134dd2982ff2a688cfd6f4a216b359c19f7b02 /src/core/main.c | |
parent | 647cb08bc3d5da8a923d055612f558cb6b61e303 (diff) |
core: change how crash_shell and crash_reboot interact
Instead of freezing in PID1 and letting the forked child freeze or
reboot when exec("/bin/sh") fails, just wait for the child's
exit and then do the freeze_or_reboot in PID1 as usual.
This means that when both crash_shell and crash_reboot are enabled, the
system will reboot after the shell exits.
Diffstat (limited to 'src/core/main.c')
-rw-r--r-- | src/core/main.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/core/main.c b/src/core/main.c index 2fa96901c7..13fa78fed8 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -231,11 +231,10 @@ noreturn static void crash(int sig) { (void) execle("/bin/sh", "/bin/sh", NULL, environ); log_emergency_errno(errno, "execle() failed: %m"); - freeze_or_reboot(); _exit(EXIT_FAILURE); } else { log_info("Spawned crash shell as PID "PID_FMT".", pid); - freeze(); + (void) wait_for_terminate(pid, NULL); } } |