Re: [systemd-devel] [PATCH] shutdown: pass own argv to /run/initramfs/shutdown

2014-10-23 Thread Lennart Poettering
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

2014-10-22 Thread Lennart Poettering
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

2014-09-30 Thread Marius Tessmann

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

2014-09-30 Thread Zbigniew Jędrzejewski-Szmek
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

2014-09-29 Thread Zbigniew Jędrzejewski-Szmek
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