summaryrefslogtreecommitdiff
path: root/src/core/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/main.c')
-rw-r--r--src/core/main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/main.c b/src/core/main.c
index f1f8b21ae0..022d05a31b 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1692,9 +1692,11 @@ finish:
watchdog_close(true);
if (switch_root_dir) {
- /* Kill all remaining processes from the initrd */
- broadcast_signal(SIGTERM);
- broadcast_signal(SIGKILL);
+ /* Kill all remaining processes from the
+ * initrd, but don't wait for them, so that we
+ * can handle the SIGCHLD for them after
+ * deserializing. */
+ broadcast_signal(SIGTERM, false);
/* And switch root */
r = switch_root(switch_root_dir);