X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fshutdown.c;h=0b7cbd8d3410e52ee13e7dca9877610a477b00a4;hb=fd5b4ca11ea2b8a82343bc0db6a2f422beb305f1;hp=78dccfb72405d21160431d83aa5798f9d3b48b37;hpb=49f43d5f91a99b23f745726aa351d8f159774357;p=elogind.git diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 78dccfb72..0b7cbd8d3 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -109,7 +109,7 @@ static int pivot_to_new_root(void) { It works for pivot_root, but the ref count for the root device is not decreasing :-/ */ - if (mount(NULL, "/", NULL, MS_PRIVATE, NULL) < 0) { + if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) { log_error("Failed to make \"/\" private mount %m"); return -errno; } @@ -177,10 +177,10 @@ int main(int argc, char *argv[]) { mlockall(MCL_CURRENT|MCL_FUTURE); log_info("Sending SIGTERM to remaining processes..."); - broadcast_signal(SIGTERM); + broadcast_signal(SIGTERM, true); log_info("Sending SIGKILL to remaining processes..."); - broadcast_signal(SIGKILL); + broadcast_signal(SIGKILL, true); if (in_container) { need_swapoff = false;