#include "mkdir.h"
#include "virt.h"
#include "watchdog.h"
+#include "killall.h"
#define FINALIZE_ATTEMPTS 50
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;
}
if (pivot_root(".", "oldroot") < 0) {
log_error("pivot failed: %m");
- /* only chroot if pivot root succeded */
+ /* only chroot if pivot root succeeded */
return -errno;
}
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;