summaryrefslogtreecommitdiff
path: root/src/core/main.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-07-17 17:44:26 +0200
committerLennart Poettering <lennart@poettering.net>2012-07-17 17:44:26 +0200
commitcee530bb23b78c0dfd18b0c2718cfe41286396df (patch)
tree1773a17edc3572b6f522ec877b935424106c2484 /src/core/main.c
parent92a1fd9e95954a557d6fe27b56f5ef1b89fc2f5e (diff)
switch-root: don't wait for processes
When we transition from the initrd to the main system, don't reap processes, so that they can be handled normally after deserialization.
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);