Re: [systemd-devel] [PATCH] shutdown: pass own argv to /run/initramfs/shutdown
On Tue, 30.09.14 17:02, Marius Tessmann (mus@gmail.com) wrote: > On 09/30/2014 05:03 AM, Zbigniew Jędrzejewski-Szmek wrote: > >On Fri, Aug 29, 2014 at 05:51:45PM +0200, Marius Tessmann wrote: > >>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. > >Hi, > >sorry for the late reply. > > > >Your patch should work fine if /run/initramfs/shutdown accepts > >those arguments, i.e. if it another systemd binary. But otherwise > >it might fail, no? > > Well, yes. I didn't really think about other implementations. I just checked > the Dracut source and it shouldn't break anything there since it only parses > the first argument as the verb [1]. I don't know what other implementations > are out there, but I doubt they would break since they have no reason to > parse > anything but the first argument in the first place. > > Also, the Initrd Interface [2] doesn't even mention what arguments are > passed > to the shutdown binary (not even the verb), so one could argue that > implementations should expect this to change. ;) > > Imho it would be enough to mention this in the release notes so that it can > be fixed if necessary. Other implementations may even want to make use of > the > new parameters. ;) > > If possible breakage for other implementations is not acceptable I would > love > to know how else this could/should be fixed properly. After talking to Harald about this (he saw no problem with it) I have now commited this patch and documented the bahaviour in the wiki text. Lennart -- Lennart Poettering, Red Hat ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] shutdown: pass own argv to /run/initramfs/shutdown
On Tue, 30.09.14 17:02, Marius Tessmann (mus@gmail.com) wrote: > On 09/30/2014 05:03 AM, Zbigniew Jędrzejewski-Szmek wrote: > >On Fri, Aug 29, 2014 at 05:51:45PM +0200, Marius Tessmann wrote: > >>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. > >Hi, > >sorry for the late reply. > > > >Your patch should work fine if /run/initramfs/shutdown accepts > >those arguments, i.e. if it another systemd binary. But otherwise > >it might fail, no? > > Well, yes. I didn't really think about other implementations. I just checked > the Dracut source and it shouldn't break anything there since it only parses > the first argument as the verb [1]. I don't know what other implementations > are out there, but I doubt they would break since they have no reason to > parse > anything but the first argument in the first place. > > Also, the Initrd Interface [2] doesn't even mention what arguments are > passed > to the shutdown binary (not even the verb), so one could argue that > implementations should expect this to change. ;) > > Imho it would be enough to mention this in the release notes so that it can > be fixed if necessary. Other implementations may even want to make use of > the > new parameters. ;) > > If possible breakage for other implementations is not acceptable I would > love > to know how else this could/should be fixed properly. > > [1] > https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/modules.d/99shutdown/shutdown.sh#n7 > [2] http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface/ Patch looks fine to me, but Harald (as dracut guy) shoiuld say something about this before we merge this. Harald? Lennart -- Lennart Poettering, Red Hat ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] shutdown: pass own argv to /run/initramfs/shutdown
On Tue, Sep 30, 2014 at 05:02:15PM +0200, Marius Tessmann wrote: > On 09/30/2014 05:03 AM, Zbigniew Jędrzejewski-Szmek wrote: > >On Fri, Aug 29, 2014 at 05:51:45PM +0200, Marius Tessmann wrote: > >>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. > >Hi, > >sorry for the late reply. > > > >Your patch should work fine if /run/initramfs/shutdown accepts > >those arguments, i.e. if it another systemd binary. But otherwise > >it might fail, no? > > Well, yes. I didn't really think about other implementations. I just checked > the Dracut source and it shouldn't break anything there since it only parses > the first argument as the verb [1]. I don't know what other implementations > are out there, but I doubt they would break since they have no > reason to parse > anything but the first argument in the first place. > > Also, the Initrd Interface [2] doesn't even mention what arguments > are passed > to the shutdown binary (not even the verb), so one could argue that > implementations should expect this to change. ;) > > Imho it would be enough to mention this in the release notes so that it can > be fixed if necessary. Other implementations may even want to make > use of the > new parameters. ;) > > If possible breakage for other implementations is not acceptable I > would love > to know how else this could/should be fixed properly. Environment variables? Zbyszek ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] shutdown: pass own argv to /run/initramfs/shutdown
On 09/30/2014 05:03 AM, Zbigniew Jędrzejewski-Szmek wrote: On Fri, Aug 29, 2014 at 05:51:45PM +0200, Marius Tessmann wrote: 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. Hi, sorry for the late reply. Your patch should work fine if /run/initramfs/shutdown accepts those arguments, i.e. if it another systemd binary. But otherwise it might fail, no? Well, yes. I didn't really think about other implementations. I just checked the Dracut source and it shouldn't break anything there since it only parses the first argument as the verb [1]. I don't know what other implementations are out there, but I doubt they would break since they have no reason to parse anything but the first argument in the first place. Also, the Initrd Interface [2] doesn't even mention what arguments are passed to the shutdown binary (not even the verb), so one could argue that implementations should expect this to change. ;) Imho it would be enough to mention this in the release notes so that it can be fixed if necessary. Other implementations may even want to make use of the new parameters. ;) If possible breakage for other implementations is not acceptable I would love to know how else this could/should be fixed properly. [1] https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/modules.d/99shutdown/shutdown.sh#n7 [2] http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface/ Zbyszek 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 --- src/core/shutdown.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 1e88b05..d361cbe 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)); -- 2.1.0 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] shutdown: pass own argv to /run/initramfs/shutdown
On Fri, Aug 29, 2014 at 05:51:45PM +0200, Marius Tessmann wrote: > 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. Hi, sorry for the late reply. Your patch should work fine if /run/initramfs/shutdown accepts those arguments, i.e. if it another systemd binary. But otherwise it might fail, no? Zbyszek > 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 > --- > src/core/shutdown.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/core/shutdown.c b/src/core/shutdown.c > index 1e88b05..d361cbe 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)); > -- > 2.1.0 > > ___ > systemd-devel mailing list > systemd-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/systemd-devel > ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] [PATCH] 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 --- src/core/shutdown.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 1e88b05..d361cbe 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)); -- 2.1.0 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel