X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fshutdown.c;h=a8dfe2614f204e7d588686406ff06297a49b74d9;hb=ec8927ca5940e809f0b72f530582c76f1db4f065;hp=9631f92885d44e816979754c1861a514656b0352;hpb=ff644623750b4f672a79cab6cc52e8681e55a044;p=elogind.git diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 9631f9288..a8dfe2614 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -309,6 +309,7 @@ int main(int argc, char *argv[]) { unsigned retries; bool need_umount = true, need_swapoff = true, need_loop_detach = true, need_dm_detach = true; bool killed_everbody = false, in_container, use_watchdog = false; + char *arguments[3]; log_parse_environment(); log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */ @@ -347,8 +348,7 @@ int main(int argc, char *argv[]) { use_watchdog = !!getenv("WATCHDOG_USEC"); /* lock us into memory */ - if (mlockall(MCL_CURRENT|MCL_FUTURE) != 0) - log_warning("Cannot lock process memory: %m"); + mlockall(MCL_CURRENT|MCL_FUTURE); log_info("Sending SIGTERM to remaining processes..."); send_signal(SIGTERM); @@ -443,7 +443,10 @@ int main(int argc, char *argv[]) { if (retries >= FINALIZE_ATTEMPTS) log_error("Too many iterations, giving up."); - execute_directory(SYSTEM_SHUTDOWN_PATH, NULL, NULL); + arguments[0] = NULL; + arguments[1] = argv[1]; + arguments[2] = NULL; + execute_directory(SYSTEM_SHUTDOWN_PATH, NULL, arguments); /* If we are in a container, just exit, this will kill our * container for good. */