X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshutdown.c;h=11213f9d595a288c57e3d803d3ed8d21ff16a115;hb=4f3656e1cec7fe3d7d3537e23a406cb88d734502;hp=6714927f86391d2e95013bc09990364b79e85cc0;hpb=bccc1d8859175f0927652d694796892c9e9c21d6;p=elogind.git diff --git a/src/shutdown.c b/src/shutdown.c index 6714927f8..11213f9d5 100644 --- a/src/shutdown.c +++ b/src/shutdown.c @@ -41,6 +41,7 @@ #include "log.h" #include "umount.h" #include "util.h" +#include "virt.h" #define TIMEOUT_USEC (5 * USEC_PER_SEC) #define FINALIZE_ATTEMPTS 50 @@ -295,6 +296,8 @@ int main(int argc, char *argv[]) { log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */ log_open(); + umask(0022); + if (getpid() != 1) { log_error("Not executed by init (pid 1)."); r = -EPERM; @@ -384,9 +387,12 @@ int main(int argc, char *argv[]) { log_error("Failed to detach DM devices: %s", strerror(-r)); } - if (!need_umount && !need_swapoff && !need_loop_detach && !need_dm_detach) + if (!need_umount && !need_swapoff && !need_loop_detach && !need_dm_detach) { + if (retries > 0) + log_info("All filesystems, swaps, loop devices, DM devices detached."); /* Yay, done */ break; + } /* If in this iteration we didn't manage to * unmount/deactivate anything, we either kill more