From: Marius Tessmann Date: Fri, 29 Aug 2014 15:51:45 +0000 (+0200) Subject: shutdown: pass own argv to /run/initramfs/shutdown X-Git-Tag: v217~90 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a2726e5cedfa5edeabd7e0784be11bc578555ac5;p=elogind.git shutdown: pass own argv to /run/initramfs/shutdown Since commit b1e90ec515408aec2702522f6f68c4920b56375b systemd passes its log settings to systemd-shutdown via command line parameters. However, systemd-shutdown doesn't pass these parameters to /run/initramfs/shutdown, causing it to fall back to the default log settings. This fixes the following bugs about the shutdown not being quiet despite "quiet" being in the kernel parameters: https://bugs.freedesktop.org/show_bug.cgi?id=79582 https://bugs.freedesktop.org/show_bug.cgi?id=57216 --- diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 1e88b0579..d361cbe63 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -313,7 +313,7 @@ int main(int argc, char *argv[]) { access("/run/initramfs/shutdown", X_OK) == 0) { r = switch_root_initramfs(); if (r >= 0) { - arguments[0] = (char*) "/shutdown"; + argv[0] = (char*) "/shutdown"; setsid(); make_console_stdio(); @@ -321,7 +321,7 @@ int main(int argc, char *argv[]) { log_info("Successfully changed into root pivot.\n" "Returning to initrd..."); - execv("/shutdown", arguments); + execv("/shutdown", argv); log_error("Failed to execute shutdown binary: %m"); } else log_error("Failed to switch root to \"/run/initramfs\": %s", strerror(-r));